pythonpipanacondaenvironment

Using Pip to install packages to Anaconda Environment


conda 4.2.13 MacOSX 10.12.1

I am trying to install packages from pip to a fresh environment (virtual) created using anaconda. In the Anaconda docs it says this is perfectly fine. It is done the same way as for virtualenv.

Activate the environment where you want to put the program, then pip install a program...

I created an empty environment in Ananconda like this:

conda create -n shrink_venv

Activate it:

source activate shrink_venv

I then can see in the terminal that I am working in my env (shrink_venv). Problem is coming up, when I try to install a package using pip:

(shrink_venv): pip install Pillow

Requirement already satisfied (use --upgrade to upgrade): Pillow in /Library/Python/2.7/site-packages

So I can see it thinks the requirement is satisfied from the system-wide package. So it seems the environment is not working correctly, definitely not like it said in the docs. Am I doing something wrong here?

Just a note, I know you can use conda install for the packages, but I have had an issue with Pillow from anaconda, so I wanted to get it from pip, and since the docs say that is fine.

Output of which -a pip:

/usr/local/bin/pip
/Users/my_user/anaconda/bin/pip

UPDATE

I see this is pretty common issue. What I have found is that the conda env doesn't play well with the PYTHONPATH. The system seems to always look in the PYTHONPATH locations even when you're using a conda environment. Now, I always run unset PYTHONPATH when using a conda environment, and it works much better. I'm on a mac.


Solution

  • For others who run into this situation, I found this to be the most straightforward solution:

    1. Run conda create -n venv_name and conda activate venv_name, where venv_name is the name of your virtual environment.

    2. Run conda install pip. This will install pip to your venv directory.

    3. Find your anaconda directory, and find the actual venv folder. It should be somewhere like /anaconda/envs/venv_name/; or, you could also run conda activate venv_name.

    4. Install new packages by doing /anaconda/envs/venv_name/bin/pip install package_name; or, simply run pip install package_name.

    This should now successfully install packages using that virtual environment's pip!