虚拟环境的创建,目的是与系统的python环境隔离,创建一个与项目相关的干净环境,每个虚拟环境有独立的python解释器(该解释器同创建虚拟环境的python版本有关系),和有自己独立的一套安装包(库);
注意 :python v3.3、v3.4中推荐使用的pyvenv模块在python3.6中被弃用了,v3.5后推荐使用原生的venv模块创建虚拟环境
创建虚拟环境
python3 -m venv /path/to/new/virtual/environment
执行该命令,会创建一个虚拟环境的目录:/path/to/new/virtual/environment,目录文件夹结构【图中的/path/to/new/virtual/environment 定义为venv】如下:
pyvenv.cfg 文件
主要是告知运用哪个python命令安装,且创建子目录bin(window上是Script)、lib/pythonX.Y/site-packages (window上Lib\site-packages),和设置是否拷贝系统环境site-packages 中的安装包,默认False,其中bin目录下放可执行文件,如激活、退出激活虚拟环境等;lib/pythonX.Y/site-packages存放安装包,初始情况下默认为空
需要注意:python v3.4+会默认安装pip包管理工具,可使用--without-pip选项禁止安装pip
激活&退出虚拟环境
激活环境,主要是切换成当前虚拟环境中的python解释器,非系统python解释器
bash/zsh:
source <venv>/bin/activate.csh
Posix:
source <venv>/bin/activate
Windows cmd.exe:
<venv>\Scripts\activate.bat
PowerShell PS:
<venv>\Scripts\Activate.ps1
相应地,退出虚拟环境,则根据不同平台执行deactivate
的可执行文件即可
遇到的一些问题
- 问题:windows上执行
python3 -m venv ./venv
时候报系统找不到指定的文件错误,且Scripts目录下的文件只有python和pythonw,没有activite相关文件
解决方案:暂时不安装pip,之后手动安装
python3 -m venv --without-pip ./venv
window上,python v3.4+,只需要执行python -m ensurepip
即可手动安装pip,其他版本可参考:https://stackoverflow.com/questions/4750806/how-to-install-pip-on-windows - 问题:为什么网上会出现各种
virtualenv
、pyvenv
创建虚拟环境的教程
首先目的都是为了创建虚拟环境而创立的模块,python版本不同,使用的手段不同,官方是3.5版本后才推荐使用自带的venv模块创建,那么对于前期版本,只能使用其他办法,如使用第三方virtualenv
模块等来创建