当前位置: 首页 > 知识库问答 >
问题:

不能用venv定义python包(版本),就像它用虚拟环境一样

陆畅
2023-03-14

我最近设置了Ubuntu 18.04.1桌面(带有Oracle VM),它随Python 3.6.8一起提供。标准系统升级后,它变成了 3.6.9。后来我安装了Python 3.8,pip和venv,如下所示:

$ sudo apt install python3.8
$ sudo apt install python3-pip
$ sudo apt install python3-venv

如果我理解正确的话,pip和venv是两个版本的常用名称,事实上我已经意识到pip3安装了3.6版本的文件。我没有强迫apt安装3.8版本的pip3。

现在我可以用Python 3.6创建虚拟环境,但仍然不能用3.8。没有选项来判断应该从哪个Python副本(版本)创建虚拟env。在旧的virtualenv和virtualenvwrapper解决方案中,有一个命令行选项用于定义版本:

mkvirtualenv -p python3.8 myvirtualenv38

mkvirtualenv -p python3.6 myvirtualenv36

我找不到与 venv 类似的选项。有人说我们应该使用适当的 Python 版本运行 venv 作为

python3.8 -m venv myvirtualenv38

但这将失败并出现错误消息:

user@Server-Ubuntu:~/envs$ python3.8 -m venv env38a
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/user/envs/env38a/bin/python3.8', '-Im', 'ensurepip', '--upgrade', '--default-pip']

为新的虚拟环境创建目录结构,但例如激活文件不存在。

附加信息:我也玩了一些更新替代方案 --config python3,但我停止了,因为 Ubuntu 18 似乎依赖于 Python3.6,并且将默认值更改为 3.8 会导致直接问题,例如在运行终端时。在上述过程中,我尚未尝试临时更改版本。

共有2个答案

苏伟志
2023-03-14

您需要安装正确版本的venv:

sudo apt-get install python3.8-venv

安装后,只需运行:

python3.8 -m venv your_virtual_env

激活环境并确保它在Python 3.8上运行:

source your_virtual_env/bin/activate
python -V
>> Python 3.8.x
裴凯定
2023-03-14

我终于找到了问题的答案...

必须为他想使用虚拟环境的每个Python版本安装venv。所以正确的安装路径如下:

$ sudo apt install python3.8
$ sudo apt install python3-pip
$ sudo apt install python3.6-venv  # needed only if you would like to use 3.6 with venv
$ sudo apt install python3.8-venv

在此之后,为不同版本创建虚拟环境如下:

mkvirtualenv -p python3.8 myvirtualenv38

mkvirtualenv -p python3.6 myvirtualenv36
# mkvirtualenv -p python3 myvirtualenv36  # this also installs v3.6 virtual environment
 类似资料:
  • python 的虚拟环境可以为一个 python 项目提供独立的解释环境、依赖包等资源,既能够很好的隔离不同项目使用不同 python 版本带来的冲突,而且还能方便项目的发布。 virtualenv virtualenv可用于创建独立的 Python 环境,它会创建一个包含项目所必须要的执行文件。 安装 virtualenv $ pip install virtualenv 配置 pip 安装第

  • 本文向大家介绍Python为不同版本的python创建虚拟环境,包括了Python为不同版本的python创建虚拟环境的使用技巧和注意事项,需要的朋友参考一下 示例 假设python和python3都已安装,即使python3不是默认的Python ,也可以为Python 3创建虚拟环境: 要么 要么 要么 实际上,您可以基于系统的任何可用python版本创建虚拟环境。您可以在/usr/bin/或

  • 问题内容: 我的Python虚拟环境使用创建时使用 但我需要使用,因为尚不支持3.6 。 在创建虚拟环境时,我曾尝试使用该标志,但这不起作用。 问题答案: 假设您已经安装了Python或任何所需版本的Python(2.6、2.7、3.5、3.6),那么在创建虚拟环境时,现在将直接传递python可执行文件路径。因此,这里有一些有效的例子 最后

  • 如何删除使用创建的虚拟环境 我可以删除目录吗? 这似乎是一个谷歌应该很容易回答的问题,但我只找到了删除用或创建的环境的答案。

  • 本文向大家介绍Python使用Anaconda制作虚拟环境,包括了Python使用Anaconda制作虚拟环境的使用技巧和注意事项,需要的朋友参考一下 示例 virtualenvAnaconda的强大替代品-跨平台的pip类软件包管理器,捆绑了可快速创建和删除虚拟环境的功能。安装Anaconda之后,以下是一些入门指南: 创建环境 在<envname>您的虚拟环境中使用任意名称,并且<versio

  • 这份教程是帮助你安装和使用 Python 的包 本指南会告诉你如何安装和使用必要的工具。值得注意的是 Python 可以做许多许多的事情,至于你如何去安装和管理你的依赖可能会根据你项目的不同而不同。这份指南更多是开发和部署网络服务(包括 web 应用),但是这份指南同样适用于帮助你管理任何项目的开发和测试环境。 注意:这份指南是在 Python 3 版本下完成的,如果你由于不可抗拒的原因仍然在使用