推荐工具:
- virtualenv+virtualevnwrapper
- pyenv
- venv 模块(Python3.3+)
前两个工具这里就不聊了,网上一堆资料。无意中发现python3.3版本新增了个venv模块,用于自定义目录创建轻量级“虚拟环境”,与系统版本目录隔离。
venv 模块
创建虚拟环境
python3 -m venv /path/to/new/virtual/environment
上述命令会创建目标目录/path/to/new/virtual/environment
,并会生成配置文件pyvenv.cfg
;同时会创建子目录bin/
(Windows平台下会是 Scripts
子目录)来存放python二进制执行文件;创建子目录lib/pythonX.Y/site-packages
(Windows平台下是Lib\site-packages
子目录)存放安装的python包。
激活虚拟环境
虚拟环境创建完后,可以使用命令activated
命令激活,具体的命令因平台不同而有所区别:
平台 | shell | 激活命令 |
---|---|---|
Posix | bash/zsh | $ source <venv>/bin/activate |
fish | $ . <venv>/bin/activate.fish | |
csh/tcsh | $ source <venv>/bin/activate.csh | |
Windows | cmd.exe | C:> <venv>\Scripts\activate.bat |
PowerShell | PS C:> <venv>\Scripts\Activate.ps1 |
实际上并不需要特意激活虚拟环境,activated
其实只是将虚拟环境的bin/
路径加到系统变量PATH中,可以不用通过全路径执行命令而已。无论如何,安装在虚拟环境中的脚本都可以在不激活虚拟环境的情况下执行,并且会自动以虚拟环境下的python运行。
可以通过deactivate
推出虚拟环境,bash控制台下通过deactivate
函数,直接执行即可,而windows平台下则是提供独立的脚本deactivated.bat
或deactivated.ps1
。