Prevent Accidental Installation of Packages Outside Virtual Environment
You may often find yourself accidentally installing packages to your global python interpreter because you forgot to activate a virtual environment. Thankfully you can make pip require virtualenv to be activated in order to perform the install.
There are two ways to do this: either by using an environment variable PIP_REQUIRE_VIRTUALENV
or by enabling require-virtualenv
pip config option.
To make this a default globally either add the following to your .bashrc
(or .zshrc
or whatever other rc you are using)
echo "export PIP_REQUIRE_VIRTUALENV=true" >> ~/.bashrc
or run the following command
python -m pip config set global.require-virtualenv true
Which will add something along the lines of
[global]
require-virtualenv = true
to your ~/.config/pip/pip.conf
(may be a different location on your system).
I prefer the second option as that way I don’t clutter my .bashrc
and if I add
new pip config entries they will all be in the same file. The second option
also works on Windows.
Setting this option globally will be useful most of the time but you may still need to run commands for the global interpreter.
$ pip freeze
ERROR: Could not find an activated virtualenv (required).
This can be easily achieved by adding PIP_REQUIRE_VIRTUALENV=false
in front
of the command that’s failing:
$ PIP_REQUIRE_VIRTUALENV=false pip freeze
If you've come this far with the article you may want to know a thing or two about me if you don't already. You can also read other blog posts or about stuff I've learned recently.
This website is open source. If you've come across a mistake please let me know there. For other types of feedback you can reach out to me through email or social media.