如何安装并使用Python虚拟环境
有两种虚拟环境可选,即virtualenv
和conda
。我的系统是Windows 10 x64。
virtualenv
安装
使用pip安装即可。
pip install virtualenv
创建虚拟环境
virtualenv VENVNAME
--no-site-packages
参数能使virtualenv
不会把主环境中已安装的包复制到新创建的虚拟环境中,但这早已成为virtualenv的默认设置,因此无需添加。
激活虚拟环境
与Linux不同,Windows没有source
命令,直接输入路径即可。
.\your_env_dir\Scripts\activate
注意前面加上了.\
让Powershell执行文件,否则会报错找不到文件。如果不想每次输入.\
,可以在管理员Powershell中执行以下命令:
Set-ExecutionPolicy RemoteSigned
看到路径前面出现括号,就说明成功了。
退出虚拟环境
deactivate
分析
virtualenv的原理是把系统Python和pip复制一份到虚拟环境目录,并临时把环境变量设为虚拟环境目录中的。这样在虚拟环境中安装的软件包都会在该目录内。virtualenv的作用效果是局部的。
但是这样还是新版的Python,新版Python(3.7及更新)与tensorflow 1.12不兼容。虽说也可以手动下载替换虚拟环境中的Python,但还是不太方便,所以最终我选择了大名鼎鼎的Python软件包管理器Anaconda3。
Anaconda3
安装
直接去Anaconda官网下载Windows安装程序即可,注意安装时有两个复选框,分别是添加Anaconda到PATH和将Anaconda Python 3.8设为默认Python,一定要勾上。
创建虚拟环境
Anaconda可以在创建虚拟环境时指定Python版本,这里我设为了Python 3.8.6。和virtualenv不同,Anaconda创建的虚拟环境在Anaconda安装目录下,因此不必先cd到心怡的目录。
conda create -n VENVNAME python=3.8.6
但是由于Anaconda的服务器在海外,速度非常慢。因此我们需要先修改它的网络配置,添加清华大学的镜像源,有需要时可以配置代理。用Notepad ++(记事本也可以,将notepad++替换为notepad。但是notepad++真滴好用,强烈推荐。)打开配置文件:
start notepad++ 'C:\Users\YOUR_CURRENT_USERNAME\.condarc'
将其内容修改为:
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: true
proxy_servers:
http: http://pro.xya.ddr.ess:port
https: http://pro.xya.ddr.ess:port
ssl_verify: false
这样速度会快一些,但在我这儿还是只有1-2Mbps
的速度QAQ
查看虚拟环境
执行以下命令可以查看可用的虚拟环境
conda env list
激活虚拟环境
按理说执行这个命令就可以了,但是我执行后,啥反应也没有,没报错,但提示符前面也没出现代表虚拟环境的小括号。
conda activate VENV_NAME
这种情况花了我大量时间排查原因。最终是这么解决的:
安装模块以使conda虚拟环境支持Powershell,虽然按理说我用的4.9版本已经原生支持了。
conda install -n root -c pscondaenvs pscondaenvs
更改Powershell配置,管理员Powershell运行:
Set-ExecutionPolicy RemoteSigned
再运行
conda activate VENV_NAME
就可以成功进入虚拟环境。虽说如此,有如下信息出现:
警告: You are using conda 4.9.2, which has built-in support for PowerShell.
警告: This script may stop working with conda versions newer than 4.6
警告: For more info on how to set up PowerShell for conda, run 'conda init --help'
WARNING: The conda.cli.activate module is deprecated and will be removed in a future release.
WARNING: The module conda.cli.activate is deprecated. It will be removed in a future feature release (i.e. minor version release).
WARNING: The conda.cli.activate module is deprecated and will be removed in a future release.
WARNING: The module conda.cli.activate is deprecated. It will be removed in a future feature release (i.e. minor version release).
说明这可能不是长久之计。Anyway,至少现在能用了。
只需在Powershell中执行如下命令,
conda init powershell
再重启Powershell,就能正常使用conda activate
。(我TM……为啥不在安装的时候就做好???)
比如:
conda activate venv
conda deactivate #不需要指定名称
Enjoy!
终于可以愉快地使用虚拟环境了!
评论
发表评论