我们如何在同一个 Ubuntu OS 上分别使用、维护和安装 python 2.7 和 python 3.5 的库?
How do we separately use, maintain & install libraries for python 2.7 and python 3.5 on the same Ubuntu OS?
我需要在 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
等?
PS:我还没有正式使用 Virtualenv,但我被告知这通常有助于在 python 语言版本中隔离项目,而不是从中隔离两个不同的语言版本彼此。
请告诉我。
谢谢
这绝对没问题,因为 Python 会为您做到这一点。你根本不需要 virtualenv。
如果您使用 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 可执行文件仅使用其各自的指令。
不要不要 fiddle PYTHONPATH
,除非你真的知道自己在做什么。这有将 PYTHONPATH
设置为带有 Python 2.7 模块的目录,然后将 Python 3.5 用于 运行 的危险。
如果您从头开始,可能需要先安装 pip
。
对于系统 Python(s),使用相关包:
sudo apt install python-pip
sudo apt install python3-pip
对于本地安装的 Python(s),使用内置的引导程序模块:
pythonx.y -m ensurepip
关于 OS 安装的 Python 可执行文件的注意事项:
Python 3.5 住在 /usr/bin/python3.5,Python 2.7(OS 住在 /usr/bin/python2.7。
您甚至可以在 本地安装的 /usr/local/bin/python2.7
旁边使用 OS 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
可执行文件。)
我需要在 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
等?
PS:我还没有正式使用 Virtualenv,但我被告知这通常有助于在 python 语言版本中隔离项目,而不是从中隔离两个不同的语言版本彼此。
请告诉我。
谢谢
这绝对没问题,因为 Python 会为您做到这一点。你根本不需要 virtualenv。
如果您使用 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 可执行文件仅使用其各自的指令。
不要不要 fiddle PYTHONPATH
,除非你真的知道自己在做什么。这有将 PYTHONPATH
设置为带有 Python 2.7 模块的目录,然后将 Python 3.5 用于 运行 的危险。
如果您从头开始,可能需要先安装 pip
。
对于系统 Python(s),使用相关包:
sudo apt install python-pip
sudo apt install python3-pip
对于本地安装的 Python(s),使用内置的引导程序模块:
pythonx.y -m ensurepip
关于 OS 安装的 Python 可执行文件的注意事项:
Python 3.5 住在 /usr/bin/python3.5,Python 2.7(OS 住在 /usr/bin/python2.7。
您甚至可以在 本地安装的 /usr/local/bin/python2.7
旁边使用 OS 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
可执行文件。)