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


当前回答

我使用pyenv来管理我的python版本。

pyenv install 3.7.3
pyenv local 3.7.3

检查您的python版本:

$ python --version
Python 3.7.3

使用venv创建虚拟环境:

python -m venv .

然后激活虚拟环境:

source bin/activate

检查您的python版本:

$ python --version
Python 3.7.3

您可能需要删除以前的虚拟环境

rm -rf bin

其他回答

很惊讶至今没有人提到康达。我发现这比这里提到的其他方法要简单得多。假设我有python2.9和python2.7,我正在研究的一个项目是python2.5.4,我可以简单地使用conda命令为3.5.4创建隔离的虚拟env,而无需下载任何其他内容。

要首先查看可用python版本的列表,请使用以下命令

conda搜索“^python$”

要为python版本x.y.z创建虚拟环境,请使用以下命令

conda create-n yourenvname python=x.y.z

使用激活venv

conda激活你的envname

使用停用

conda停用

要在完成后删除虚拟环境,请使用以下命令

conda remove-n yourenvname--all

-p方法运行良好,但您必须记住每次都使用它。如果您的目标是切换到较新版本的Python,这是一个痛苦,也可能导致错误。

您的另一个选项是设置一个环境变量,该变量的作用与-p相同。通过~/.bashrc文件或管理登录会话的环境变量的任何位置设置:

export VIRTUALENV_PYTHON=/path/to/desired/version

然后,每当您不在命令行上指定-p时,virtualenv就会使用它。

在mac上,我使用pyenv和virtualnvwrapper。我必须创造一个新的虚拟世界。你需要自制程序,如果你在mac上,我会假设你已经安装了,但只是为了好玩:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


brew install pyenv
pyenv install 2.7.10
pyenv global 2.7.10
export PATH=/Users/{USERNAME}/.pyenv/versions/2.7.10/bin:$PATH
mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python  {virtual_env_name}

我还冻结了我的需求,这样我就可以简单地在新的virtualenv中重新安装:

pip install -r requirements.txt

对于2019年的Debian(Debian 9)系统,我发现了一个简单的解决方案,可以从虚拟环境中解决问题。

假设虚拟环境是通过以下方式创建的:

python3.7 -m venv myenv

但只有python2和python2.7的版本,您需要python3.7的最新功能。

然后,只需运行以下命令:

(myvenv) $ python3.7 -m venv --upgrade /home/username/path/to/myvenv/

如果您的系统上已经有python3.7包,则将添加这些包。

您可以使用所需的python版本调用virtualenv。例如:

python3 -m virtualenv venv

或者直接指向虚拟路径。例如,对于窗口:

c:\Python34\Scripts\virtualenv.exe venv

通过运行:

venv/bin/python

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

您可以看到安装在虚拟环境中的python版本