我们如何单独使用,维护和在同一个Ubuntu操作系统上安装python 2.7和python 3.5的库?

时间:2016-11-15 07:10:02

标签: python python-2.7 ubuntu virtualenv python-3.5

我需要在我的Ubuntu 16.04.1 LTS上同时使用Python 2.7.12和python 3.5.2。 Python 3已预先安装,所以我不知道它在目录路径方面的位置,而python 2位于/usr/local/lib/python2.7/

我发现很多关于SO和askubuntu的问题关于如何安装,但没有关于如何单独使用它们,安装不同的库,以及我应该避免或注意什么,如果我长期保持这个双python的东西术语?例如,我通常运行pip install来安装库,我可以检查它是否安装在我的python2目录中但是如何为我的python3安装相同的包而不会发生冲突?像:python3 pip install <package> ??安装默认的python3在哪里?如何为python不是命令的一部分的路径调用python3,例如:pip freezesudo-apt get等?

PS:我还没有正式使用Virtualenv,但我被告知通常可以在python语言版本中隔离项目,而不是将两种不同的语言版本相互隔离。

请告诉我。

由于

1 个答案:

答案 0 :(得分:6)

这绝对没有问题,因为Python会为你做到这一点。你根本不需要虚拟现实。

如果您使用Ubuntu软件包,请确保使用Python 3的python3-版本和Python 2的普通python-版本。
例如,python3-numpypython-numpy

如果您使用pip安装额外的软件包,则可以使用附加版本号的pip脚本:pip2.7pip3.5,或者我的首选方法,将pip作为相应Python可执行文件的模块调用:

python2.7 -m pip install <whatever>

python3.5 -m pip install <whatever>

除此之外,不应该有任何问题:Python将包存储在完全独立的目录中,并且每个Python可执行文件仅使用其各自的指令。

除非你真的知道自己在做什么,否则 不会使用PYTHONPATH。这样做有可能将PYTHONPATH设置为使用Python 2.7模块的目录,然后使用Python 3.5来运行。

如果您从头开始,可能需要先安装pip

对于 system Python,请使用相关的包:

sudo apt install python-pip
sudo apt install python3-pip

对于本地安装的Python,请使用内置的bootstrapper模块:

pythonx.y -m ensurepip

关于操作系统安装的Python可执行文件的注意事项:

Python 3.5位于/usr/bin/python3.7,Python 2.7(OS一)/usr/bin/python2.7。 您甚至可以使用本地安装的/usr/local/bin/python2.7 旁边的操作系统2.7(如果因为您使用了错误的软件包而无法找到软件包,则会让您自己感到困惑。)
或者在Python 3.5旁边安装Python 3.6(如果您使用过make altinstall,那么python3不会被覆盖)。

这就是为什么你真的不想按照运行pip(甚至pip2.7pip2.7可能会让你系统一,而不是/usr/local/bin/pip2.7中的一个,具体取决于您的PATH

python2.7可执行文件也是如此,因此如果您需要指定运行该/usr/local/bin/python2.7的完整路径(或具有别名),则pip2.7也适用另一方面,如果/usr/local/bin上的PATH ,那么您原则上应该永远不会遇到同一个pippython可执行文件。)