简体   繁体   中英

How can I control which Python distribution to pip install a package to when I have Python 2, Python 3, and Anaconda on my computer?

I have the following Python distributions installed on my Windows computer:

  • Python 2.7 (IDLE)
  • Python 3.4 (IDLE)
  • Anaconda (Python 3.4)

Obviously, they all store their libraries in different locations.

So, how can I easily make a targeted installation to (a different) one of them each time I need to do so?

For example, right now, I am trying to install pytz to Python 3.4 (IDLE), and pip install seems to be defaulting to Python 2.7 (IDLE), which is the first distribution of Python I had installed on my computer.

Anaconda Python

If you have Anaconda python installed, it probably will overwrite python command to point to the Anaconda interpreter as default, so does pip. In that case, all the libraries installed by pip command will be installed under the Anaconda python library path:

$ which python
/home/datafireball/anaconda/bin/python
$ which pip
/home/datafireball/anaconda/bin/pip
$ cat /home/datafireball/anaconda/bin/pip
#!/home/datafireball/anaconda/bin/python
if __name__ == '__main__':
    import sys
    from pip import main
sys.exit(main())

Default Python2.7

If you try to install libraries under default Python2.7, you can specify the pip path like this:

/usr/bin/pip install <libraryname>

In that case, it will use the Python2.7 interpreter to compile the library and it will be installed under default Python2.7 library folder.

Python3

In my Ubuntu VM, python3 is installed as default but not the pip3. I have to install by doing sudo apt-get install python3-pip . After it is installed, you can use pip3 to install libraries for python3.

More about PIP ( ReadTheFullManual ):

There are indeed a lot of interesting arguments in pip command itself to let you install package in whatever way you like.

For example,

pip install --target will install the library in specified library, which you can actually using Anaconda pip to install the library to be under default python library... (not sure why would anyone do this)

I'm not sure why you need so many different Pythons, but for Anaconda, you should use conda.

conda install pytz

will install pytz into your Anaconda Python.

If all you are aiming to do is to have both Python 2 and Python 3 you can do this with conda.

conda create -n py27 python=2.7 anaconda

will create a conda environment (similar to a virtualenv but more powerful) with the Python 2.7 version of Anaconda. You can then activate this with

activate py27

See http://continuum.io/blog/anaconda-python-3 .

You can also use pip with Anaconda, but using conda is recommended unless the package you need is not available through conda.

For Anaconda go to C:\\Users\\USERNAME\\Anaconda3\\Scripts

Change these files pip-script.py and pip.exe to pip3-script.py and pip3.exe . 在此处输入图片说明

Then add these variables to your system variables.

在此处输入图片说明

Voila..!! Your Job is done. Now to install use pip2 for 2.7 and pip3 for anaconda version. 在此处输入图片说明

(in command prompt)C:\\Python34\\scripts\\pip.exe install pytz

this assumes your path is similar to mine. I used the default install location for all my pythons(2.7,3.4).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM