如何在虚拟环境(Ubuntu 18.04LTS)中更改Python解释器?

2024-05-15 00:13:37 发布

您现在位置:Python中文网/ 问答频道 /正文

到目前为止,我一直在Windows上使用Anaconda,可以在选择使用哪种Python时设置环境。例如conda create -n myEnvName python=3.7

现在,我想熟悉Ubuntu 18.04 LTS并使用基本的Python环境

因此,我遵循以下步骤:

  1. 已在myhome = ~/.venvPython中创建文件夹
    • (a) 我想我已经在操作系统上默认使用了2.7和3.6
    • (b) 我不记得很清楚,我想我必须这样做
  2. 在将CD刻录到.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,然后以某种方式指向它

请引导我。非常感谢。 罗希特


Tags: 命令文件夹configbin环境includelibusr
3条回答

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

python3 -m venv myenv
source myenv/bin/activate

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

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

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

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

如果您想在其中一个平台上运行特定的Python版本,请查看是否可以找到为您的系统提供此版本的Apt源代码(Ubuntu有各种知名度的非正式PPA的软底层;Debian有backports),或者自己从源代码安装它。有像pyenv这样的附加组件,可以让您轻松、安全、透明地完成这项工作

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

据我所知^{} standard library出现在python3.3中,从未后端口2.7

venv只能为其自身版本的解释器创建虚拟环境,并且不能将虚拟环境目录移动到其他位置或重命名。Python3.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应该会带来很多改进)

相关问题 更多 >

    热门问题