direnv is a tool to set up automatically environment variables as soon as we enter in a directory that contains a
.envrc file. We can use this feature to activate our virtualenvs as well.
Let's see what happens when we activate manually a virtualenv with
- A new new environment variable called
- The path is updated to include the
bindirectory inside our
virtualenvthis is made to allow us to point to the correct python installation and run cli interfaces exposed by the dependencies we have installed.
Because all the "magic" about activating a
virtualenv is basically configuring some environment variables we can do it automatically using
Let's assume we have a
virtualenv installed in the path
virtualenv is located inside
~/.environments because I'm using
virtualenvwrapper but it can be in any other location. Now we can use this location to configure our
.envrc file as the following:
export VIRTUAL_ENV=/Users/erick/.virtualenvs/demo export PATH=/Users/erick/.virtualenvs/demo/bin:$PATH
Now when we enter our project folder the virtualenv will be "activated" automatically and when we leave the project folder it will be "deactivated".
Also when we use this method is easiest for our editor(emacs in my case) to recognize the current python installation and be able to run tests, execute files, etc.