我需要在我的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 freeze
,sudo-apt get
等?
请告诉我。
由于
答案 0 :(得分:6)
这绝对没有问题,因为Python会为你做到这一点。你根本不需要虚拟现实。
如果您使用Ubuntu软件包,请确保使用Python 3的python3-
版本和Python 2的普通python-
版本。
例如,python3-numpy
和python-numpy
。
如果您使用pip
安装额外的软件包,则可以使用附加版本号的pip
脚本:pip2.7
或pip3.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.7
):pip2.7
可能会让你系统一,而不是/usr/local/bin/pip2.7
中的一个,具体取决于您的PATH
。
(python2.7
可执行文件也是如此,因此如果您需要指定运行该/usr/local/bin/python2.7
的完整路径(或具有别名),则pip2.7
也适用另一方面,如果/usr/local/bin
上的PATH
,那么您原则上应该永远不会遇到同一个pip
和python
可执行文件。)