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
Which is all I need, really.(Up you go!)