python和pip的多个版本共存–ubuntu linux
ubuntu linux存在多个不同的python版本,导致pip也存在多套版本。如果再安装virtualenv,对应的python版本和pip版本都会有很多套。
针对多个不同的python版本
ls -l /usr/bin/python*
lrwxrwxrwx 1 root root 9 9月 24 2014 /usr/bin/python -> python2.7 lrwxrwxrwx 1 root root 9 9月 24 2014 /usr/bin/python2 -> python2.7 -rwxr-xr-x 1 root root 3345416 6月 23 02:51 /usr/bin/python2.7 lrwxrwxrwx 1 root root 9 9月 24 2014 /usr/bin/python3 -> python3.4 -rwxr-xr-x 2 root root 4061272 6月 19 23:35 /usr/bin/python3.4 -rwxr-xr-x 2 root root 4061272 6月 19 23:35 /usr/bin/python3.4m lrwxrwxrwx 1 root root 10 9月 24 2014 /usr/bin/python3m -> python3.4m
可以看出: python=python2=python2.7 python3=python3.4 python3m=python3.4m python!=python3
我用的是哪个python?
直接键入python开启的是python2.7 键入python3,开启的是python3.4
同样安装pip到对应的版本,需要使用
python get-pip.py
python3 get-pip.py
这样相应的安装到对应的目录下,而此时有多个pip存在。
针对多个不同的pip版本
ls -l /usr/local/bin/pip*
-rwxr-xr-x 1 root root 205 9月 16 22:34 /usr/local/bin/pip -rwxr-xr-x 1 root root 204 9月 16 22:29 /usr/local/bin/pip2 -rwxr-xr-x 1 root root 204 9月 16 22:29 /usr/local/bin/pip2.7 -rwxr-xr-x 1 root root 205 9月 16 22:34 /usr/local/bin/pip3 -rwxr-xr-x 1 root root 205 9月 16 22:34 /usr/local/bin/pip3.4
由于pip后装在了python3上,所以pip重新对应了python3。可以看出: pip2=pip2.7 pip3=pip3.4 pip=pip2还是pip3取决于安装的先后顺序,这样有了python2.7和3.4,又有了pip2.7和pip3.4。
可以通过下列命令看出差异:
pip2 list
pip3 list
可以看出对应的包不同,再例如
pip2 show pip
结果是: Metadata-Version: 2.0 Name: pip Version: 7.1.2 Summary: The PyPA recommended tool for installing Python packages. Home-page: https://pip.pypa.io/ Author: The pip developers Author-email: python-virtualenv@groups.google.com License: MIT Location: /usr/local/lib/python2.7/dist-packages Requires:
而
pip3 show pip
结果是: Metadata-Version: 2.0 Name: pip Version: 7.1.2 Summary: The PyPA recommended tool for installing Python packages. Home-page: https://pip.pypa.io/ Author: The pip developers Author-email: python-virtualenv@groups.google.com License: MIT Location: /usr/local/lib/python3.4/dist-packages Requires:
可以看出安装的位置不同。
使用虚拟环境,避免被意外破坏生产环境
sudo pip2 install -U virtualenv
pip2 show virtualenv
Metadata-Version: 2.0 Name: virtualenv Version: 13.1.2 Summary: Virtual Python Environment builder Home-page: https://virtualenv.pypa.io/ Author: Jannis Leidel, Carl Meyer and Brian Rosner Author-email: python-virtualenv@groups.google.com License: MIT Location: /usr/local/lib/python2.7/dist-packages Requires:
再安装python3的虚拟环境:
sudo pip3 install -U virtualenv
pip3 show virtualenv
Metadata-Version: 2.0 Name: virtualenv Version: 13.1.2 Summary: Virtual Python Environment builder Home-page: https://virtualenv.pypa.io/ Author: Jannis Leidel, Carl Meyer and Brian Rosner Author-email: python-virtualenv@groups.google.com License: MIT Location: /usr/local/lib/python3.4/dist-packages Requires:
版本都是13.1.2,位置不同,功能一样。
~/pve$ python2 -m virtualenv -p python2 pve27
Already using interpreter /usr/bin/python2 New python executable in pve27/bin/python2 Also creating executable in pve27/bin/python Installing setuptools, pip, wheel…done.
再看py3:
~/pve$ python3 -m virtualenv -p python3 pve34
Already using interpreter /usr/bin/python3 Using base prefix ‘/usr’ New python executable in pve34/bin/python3 Also creating executable in pve34/bin/python Installing setuptools, pip, wheel…done. ~/pve/pve27/bin$ source activate
再来看一下pip list
pip list
pip (7.1.2) setuptools (18.2) wheel (0.24.0)
而如果加上sudo
sudo pip list
apturl (0.5.2ubuntu4) Brlapi (0.6.1) chardet (2.2.1) checkbox-ng (0.3) checkbox-support (0.2) command-not-found (0.3) defer (1.0.6) ……
这个sudo后面的pip调用的是系统pip(pip3),所以不要加sudo。 虚拟机开启后不需要sudo。
~/pve/pve34/bin$ source activate
然后执行:
pip list
pip (7.1.2) setuptools (18.2) wheel (0.24.0)