如何在虚拟环境 (Ubuntu 18.04LTS) 中更改 Python 解释器?
How can I change the Python interpreter in virtual environment (Ubuntu 18.04LTS)?
到目前为止,我一直在 Windows 上使用 Anaconda,并且可以在选择要使用的确切 Python 的同时设置环境。例如。 conda create -n myEnvName python=3.7
现在,我想熟悉 Ubuntu 18.04 LTS 并使用基本的 Python 环境。
所以我遵循了这些步骤:
- 在我的
home = ~/.venvPython
中创建了文件夹
- (a) 我想我在 OS 上已经默认有 2.7 和 3.6。
- (b) 我不太记得了,我想我必须这样做
sudo apt-get install python3-venv
.
- 在 CD 到 .venvPython 文件夹后以这种方式创建环境 运行 这个:
python3 -m venv venv1BigDataPgm2
source ~/.venvPython/venv1BigDataPgm2/bin/activate
- 命令
python --version
说:Python 3.6.9
运行 whereis Python
显示:
rohit@rohitUb18043LTS:~$ whereis python
python: /usr/bin/python3.6 /usr/bin/python3.6-config /usr/bin/python2.7-config /usr/bin/python3.6m-config /usr/bin/python /usr/bin/python3.6m /usr/bin/python2.7 /usr/lib/python3.8 /usr/lib/python3.7 /usr/lib/python3.6 /usr/lib/python2.7 /etc/python3.6 /etc/python /etc/python2.7 /usr/local/lib/python3.6 /usr/local/lib/python2.7 /usr/include/python3.6 /usr/include/python3.6m /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz
我的疑惑:
我可以像使用 conda 一样在创建环境时直接指定 Python 版本吗?
我如何将其更改为其他解释器而不是 3.6.9?
我是否必须先手动安装不同的 Python,然后以某种方式指向它?
请指导我。谢谢你。
罗希特
Ubuntu 和其他基于 Debian 的系统通常会发布 Python 最新版本,并且在发布时被认为经过充分测试;之后,只会发布保留版本号但添加补丁的安全更新(因此您可能会获得 3.6.9-123security4 而不是 3.6.9-5 或发布时的最新版本)。
如果您想 运行 这些平台之一上的特定 Python 版本,请查看是否可以找到为您的系统提供此版本的 Apt 源(Ubuntu各种知名的非官方 PPA 的软肋;Debian 有 backports
) 或者你自己从源代码安装它。有像 pyenv
这样的附加组件,可以让您轻松、安全、透明地完成此操作。
可能还有一个现有的软件包可以为您提供特定的更新版本;例如,您可以在 Ubuntu 18.04 上执行 apt install python3.7
和 apt install python3.8
,但没有适用于 3.5 或 3.9 的软件包。尝试 apt policy python3.7
查看 Ubuntu 包存档中可用的特定次要版本。
另一种方法是在 运行 脚本时始终指定您希望使用的 python 版本。
python3.6 test_script.py
通常,当我使用 Linux 并且不需要特定的 python3 版本时,我会创建本地 python3 环境。
python3 -m venv myenv
source myenv/bin/activate
但如果我需要特定的 python3 版本,我会这样做:
python3.9 -m venv myenv
source myenv/bin/activate
要在本机环境中使用特定的 python3 版本,您必须使用本机包管理器(例如 apt)安装该版本。
据我所知 venv
standard library 出现在 Python 3.3 中,并且从未 反向移植 到2.7.
venv
只能为自己版本的解释器创建虚拟环境,虚拟环境目录不能移动到不同的位置或重命名。 Python 3.foo 无法为 Python 3.bar 创建虚拟环境。所以最好一开始就选好口译员。
因为,如 whereis python
的输出所示,您似乎已经安装了多个 Python 解释器,您应该能够执行如下操作:
$ /path/to/python3.3 -m venv /path/to/my/venvs/venv33
$ /path/to/python3.8 -m venv /path/to/my/venvs/venv38
似乎有一种方法可以更改与虚拟环境关联的 Python 解释器(我没有测试过,不确定有什么限制):
$ /path/to/python3.8 -m venv --upgrade /path/to/my/venvs/venv33
或者使用 virtualenv which seems to offer a bit more flexibility, but is probably less efficient (its next major release, virtualenv 20,应该会带来很多改进)。
到目前为止,我一直在 Windows 上使用 Anaconda,并且可以在选择要使用的确切 Python 的同时设置环境。例如。 conda create -n myEnvName python=3.7
现在,我想熟悉 Ubuntu 18.04 LTS 并使用基本的 Python 环境。
所以我遵循了这些步骤:
- 在我的
home = ~/.venvPython
中创建了文件夹- (a) 我想我在 OS 上已经默认有 2.7 和 3.6。
- (b) 我不太记得了,我想我必须这样做
sudo apt-get install python3-venv
.
- 在 CD 到 .venvPython 文件夹后以这种方式创建环境 运行 这个:
python3 -m venv venv1BigDataPgm2
source ~/.venvPython/venv1BigDataPgm2/bin/activate
- 命令
python --version
说:Python 3.6.9
运行 whereis Python
显示:
rohit@rohitUb18043LTS:~$ whereis python
python: /usr/bin/python3.6 /usr/bin/python3.6-config /usr/bin/python2.7-config /usr/bin/python3.6m-config /usr/bin/python /usr/bin/python3.6m /usr/bin/python2.7 /usr/lib/python3.8 /usr/lib/python3.7 /usr/lib/python3.6 /usr/lib/python2.7 /etc/python3.6 /etc/python /etc/python2.7 /usr/local/lib/python3.6 /usr/local/lib/python2.7 /usr/include/python3.6 /usr/include/python3.6m /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz
我的疑惑: 我可以像使用 conda 一样在创建环境时直接指定 Python 版本吗? 我如何将其更改为其他解释器而不是 3.6.9? 我是否必须先手动安装不同的 Python,然后以某种方式指向它?
请指导我。谢谢你。 罗希特
Ubuntu 和其他基于 Debian 的系统通常会发布 Python 最新版本,并且在发布时被认为经过充分测试;之后,只会发布保留版本号但添加补丁的安全更新(因此您可能会获得 3.6.9-123security4 而不是 3.6.9-5 或发布时的最新版本)。
如果您想 运行 这些平台之一上的特定 Python 版本,请查看是否可以找到为您的系统提供此版本的 Apt 源(Ubuntu各种知名的非官方 PPA 的软肋;Debian 有 backports
) 或者你自己从源代码安装它。有像 pyenv
这样的附加组件,可以让您轻松、安全、透明地完成此操作。
可能还有一个现有的软件包可以为您提供特定的更新版本;例如,您可以在 Ubuntu 18.04 上执行 apt install python3.7
和 apt install python3.8
,但没有适用于 3.5 或 3.9 的软件包。尝试 apt policy python3.7
查看 Ubuntu 包存档中可用的特定次要版本。
另一种方法是在 运行 脚本时始终指定您希望使用的 python 版本。
python3.6 test_script.py
通常,当我使用 Linux 并且不需要特定的 python3 版本时,我会创建本地 python3 环境。
python3 -m venv myenv
source myenv/bin/activate
但如果我需要特定的 python3 版本,我会这样做:
python3.9 -m venv myenv
source myenv/bin/activate
要在本机环境中使用特定的 python3 版本,您必须使用本机包管理器(例如 apt)安装该版本。
据我所知 venv
standard library 出现在 Python 3.3 中,并且从未 反向移植 到2.7.
venv
只能为自己版本的解释器创建虚拟环境,虚拟环境目录不能移动到不同的位置或重命名。 Python 3.foo 无法为 Python 3.bar 创建虚拟环境。所以最好一开始就选好口译员。
因为,如 whereis python
的输出所示,您似乎已经安装了多个 Python 解释器,您应该能够执行如下操作:
$ /path/to/python3.3 -m venv /path/to/my/venvs/venv33
$ /path/to/python3.8 -m venv /path/to/my/venvs/venv38
似乎有一种方法可以更改与虚拟环境关联的 Python 解释器(我没有测试过,不确定有什么限制):
$ /path/to/python3.8 -m venv --upgrade /path/to/my/venvs/venv33
或者使用 virtualenv which seems to offer a bit more flexibility, but is probably less efficient (its next major release, virtualenv 20,应该会带来很多改进)。