问题描述
我有 Python 3.7 && 我想创建一个 Python 2.7 虚拟环境来运行一些仅适用于 Python 2.7 的代码
如何创建这个 python 2.7 虚拟环境?
python3 -m venv ?
解决方法
venv
不允许使用当前安装的 Python 版本以外的其他 Python 版本创建虚拟环境。您将不得不使用传统的 virtualenv 包,它允许通过提供二进制文件的路径来为不同版本的 python 创建虚拟环境:
virtualenv --python=/usr/bin/python2.7 /path/to/virtualenv/
其中路径 /usr/bin/python2.7
指的是系统上 Python 2.7 二进制文件的路径。
在创建虚拟环境时,会创建一个 pyvenv.cfg
,它具有 home
键,该键指示用于创建虚拟环境的 python 可执行文件的位置。如果您的全局 python 安装版本是 3.8.6,并且您运行
python3 -m venv something
您将在文件夹 something
中创建虚拟环境,其中 pyvenv.cfg
指向 Python 3.8.6 安装的 python
可执行文件。没有简单的方法*可以让它指向 Python 2.7 可执行文件。
你能做什么?
virtualenv
作为 venv
替换
venv
模块是在 Python 3.3 中引入的,因此您不能使用它在 Python 2.7 中创建虚拟环境。您可以使用 virtualenv
包,它是 venv
的超集。首先,使用 python 2.7** 安装它:
python -m pip install virtualenv
如果 Python 2.7 不在您的 PATH 中作为 python
,请使用 Python 可执行文件的完整路径代替 python
。然后,您可以创建具有 Python 2.7 的虚拟环境
virtualenv something
或
virtualenv --python=python2.7 something
* 至少,venv 模块不支持它。
** 您实际上可以使用任何 Python 版本安装它,但是在运行 --python=/opt/python-2.7/bin/python
时必须指定 --python=python2.7
或 virtualenv
。默认情况下,它使用用于安装它的 python 可执行文件。