如何为指定版本的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版本
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录