如何用 virtualenv 创建指定 Python 版本的虚拟环境?

创建指定 Python 版本的虚拟环境:可用目标解释器运行 -m venv,或用 virtualenv 的 -p 参数指定已安装且受支持的解释器。pyenv 可管理多版本。本文介绍完整做法。

最佳实践
如何用 virtualenv 创建指定 Python 版本的虚拟环境?封面

注意区分:标准库 venv 只能用创建它的那个 Python 版本;可以直接用目标解释器 /path/to/python3.x -m venv 环境名;也可安装第三方 virtualenv 包,用 python -m virtualenv -p /path/to/python3.x 环境名。前提是系统里已经装了那个版本的 Python。

使用 virtualenv 指定版本

# 安装 virtualenv
python -m pip install --user virtualenv

# 用 Python 3.10 创建虚拟环境
python -m virtualenv -p /usr/bin/python3.10 myenv

# 激活
source myenv/bin/activate
python --version   # Python 3.10.x

-p 后面跟目标版本解释器的完整路径。

系统里还没有目标版本怎么办

先安装对应版本的 Python:

  • Ubuntu:先核对所用版本是否支持 deadsnakes PPA;不要把 Ubuntu PPA 直接用于 Debian。Debian 应选其支持的软件源或其他受控安装方式;
  • pyenv:pyenv install 3.10.13,然后用 python -m virtualenv -p ~/.pyenv/versions/3.10.13/bin/python myenv;
  • conda:conda create -n myenv python=3.10,可用版本取决于平台和所配置渠道。

venv vs virtualenv

venv(内置) virtualenv(第三方)
安装 自带 pip install
指定其他版本 用目标解释器运行 -m venv -p 参数,需版本受支持
创建速度 取决于环境和版本 取决于缓存、环境和版本
Python 2 不支持 现代 virtualenv 不保证支持,需核对历史版本

常见问题(FAQ)

Q:怎么知道系统里有哪些 Python 版本?
A:ls /usr/bin/python*;或 which python3.10 python3.11;pyenv 用户用 pyenv versions。

Q:Windows 上怎么指定?
A:python -m virtualenv -p C:\Python310\python.exe myenv;装了 py 启动器也可以 py -3.10 -m virtualenv myenv。

Q:创建后 pip 装包装上哪个版本?
A:激活虚拟环境后,pip 和 python 都指向虚拟环境内的版本,互不影响。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台