繁体   English   中英

如何在虚拟环境 (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 环境。

所以我遵循了以下步骤:

  1. 在我的home = ~/.venvPython创建文件夹home = ~/.venvPython
    • (a) 我想我的操作系统默认已经有了 2.7 和 3.6。
    • (b) 我不太记得了,我想我必须这样做sudo apt-get install python3-venv
  2. 在 CD'ing 到 .venvPython 文件夹之后以这种方式创建了环境: python3 -m venv venv1BigDataPgm2
  3. source ~/.venvPython/venv1BigDataPgm2/bin/activate
  4. 命令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,然后以某种方式指向它?

请指导我。 谢谢你。 罗希特

据我所知, venv标准库出现在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 ,它似乎提供了更多的灵活性,但效率可能较低(它的下一个主要版本, virtualenv 20 ,虽然应该带来很多改进)。

Ubuntu 和其他基于 Debian 的系统通常会发布当前的 Python 版本,并在发布时被视为经过充分测试; 在那之后,只发布保留版本号但添加补丁的安全更新(因此您可能会得到 3.6.9-123security4 而不是 3.6.9-5 或发布被删除时的任何当前版本)。

如果您想在这些平台之一上运行特定的 Python 版本,请查看您是否可以找到为您的系统提供此版本的 Apt 源(Ubuntu 有各种声望的非官方 PPA 的软肋;Debian 有backports )或安装它从源头自己。 有像pyenv这样的附加组件,可以让您轻松、安全和透明地执行此操作。

也可能有一个现有的软件包为您提供特定的较新版本; 例如,您可以在 Ubuntu 18.04 上执行apt install python3.7apt install python3.8 ,但没有适用于 3.5 或 3.9 的软件包。 尝试使用apt policy python3.7以查看 Ubuntu 软件包存档中可用的特定次要版本。

通常,当我在 Linux 上并且不需要特定的 python3 版本时,我会创建原生 python3 环境。

python3 -m venv myenv
source myenv/bin/activate

但是如果我需要一个特定的 python3 版本,我会这样做:

python3.9 -m venv myenv
source myenv/bin/activate

要在本机环境中使用特定的 python3 版本,您必须使用本机包管理器(例如 apt)安装该版本。

另一种方法是在运行脚本时始终指定您希望使用的 python 版本。

python3.6 test_script.py

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM