I don't really like virtualenv
. In theory it's a great tool to isolate Python environments,
but in practice I've never used it because of the context switching involved.
Keeping track and activating and deactivating environments takes effort, and I'm extremely lazy.
direnv
is a useful shell utility that automatically swaps out environment variables
based on the current directory. Combined with an .envrc
file, I've just set up a "lazy man's
limited virtualenv" for standalone projects.
# .envrc
# force user installs into the isolated user environment
export PIP_USER=1
export PYTHONUSERBASE=$PWD
# add project bin/ to shell
PATH_add "$PWD/bin"
This doesn't copy the interpreter or do any fancy things that might be nice or sane for most
people, but it overrides pip's installation process (setting it to user install mode and use the
new user directory), makes Python load libraries from the same directory, and updates the
$PATH
.
Which is all I need, really.
(Up you go!)