pip: Could not find an activated virtualenv (required)

Question:

I am trying to instal virtualenv and/or virtualenvwrapper on a Mac OS X 10.8.3.

I have been fighting with python for the last two days. Finally I was able to install Python 2.7.4 using brew. Before I had virtualenv installed using easy_install. Then I tried to uninstall it, trying to get my computer in the same situation as the one of my colleagues. Maybe I uninstalled it with success, maybe not. I don’t know how to test it. Now I am supposed to install virtualenv using:

pip install virtualenv

But it gives me:

Could not find an activated virtualenv (required).

pip install virtualenvwrapper gives exactly the same output.

Also the variable: PIP_RESPECT_VIRTUALENV is null:

echo $PIP_RESPECT_VIRTUALENV

How can I solve this issue?

Asked By: Pietro Speroni

||

Answers:

Open your ~/.bashrc file and see if this line is there –

export PIP_REQUIRE_VIRTUALENV=true

It might be causing the trouble. If it’s there, change it to false and run –

source ~/.bashrc

If not, run export PIP_REQUIRE_VIRTUALENV=false from terminal.

Note: everything works the same if you have .bash_profile instead of .bashrc in your current user’s root directory.

Answered By: Bibhas Debnath

@Bibhas has it; +1 to look for export PIP_REQUIRE_VIRTUALENV=true in ~/.profile or ~/.bashrc. You can confirm the setting in your current shell with env |grep PIP_REQUIRE_VIRTUALENV.

This setting is a good safety check; more often than not, you’ll want to be installing things into virtualenvs. However, sometimes you do want to be working with the global/system python. In those cases, take a look at –isolated:

Run pip in an isolated mode, ignoring environment variables and user configuration.

$ pip install --upgrade pip
Could not find an activated virtualenv (required).
$ pip install --upgrade pip --isolated
Requirement already up-to-date: pip in /usr/local/lib/python2.7/site-packages
$ pip freeze --isolated
...
Answered By: JCotton

An additional solution to those already presented is to add a shell command that will allow you to install py packages by temporarily overriding the default setting. Add this to your ~/.profile, ~/.bashrc or wherever you maintain your shell’s exports/settings (in my case, ~/.zshrc).

syspip(){
    PIP_REQUIRE_VIRTUALENV="" pip "$@"
}

With this simple addition, you can install pip packages to the system via syspip install <package>.

Answered By: PerryAJ

Another place where you may possibly have this “lock” is the pip.conf file. In my case I had one in my ~/Library/Application Support/pip folder and forgot about it.

Typical content of the file could be:

[install]
require-virtualenv = true

[uninstall]
require-virtualenv = true

Similar to other answers, false should be changed to true in the file.

Answered By: Vitalii

Verify contents of ~/.pip/pip.conf like:

[global]
index=https://pypi.python.org/simple/

require-virtualenv=false

if previous it was set like require-virtualenv=true

Answered By: N N K Teja

for matchbook you must go to ‘.bash_profile ‘

1) open with your favorite editor in terminal

nano .bash_profile OR vim .bash_profile

2) find the text line that says

export PIP_REQUIRE_VIRTUALENV=true

3) delete it or set it equal to “false”

4) finally restart your terminal

Answered By: Roberto Font

Important to heed @JCotton’s advice here– keeping your pip setup so as to only install into virtualenvs is a great practice.

His solution to get virtualenv setup again of pip install --upgrade pip --isolated is exactly what should be done.

You should NOT turn off requiring a virtualenv, either by config file or by editing ~/.bash_rc or ~/.bash_profile, to get your project’s pip packages installed. We’re only doing it here because OP needs virtualenv itself installed.

In general, I see people get this message when their virtualenv wasn’t setup correctly for their project in the first place. Reminder that to create a virtualenv with its own python and pip so that you don’t run into the “could not find an activated virtualenv” error, you run virtualenv -p python3

Answered By: Micah