virtualenv

Python2 和 Python3 均支持的方式

安装
pip install virtualenv

创建项目
cd my_project_folder
virtualenv my_project

指定 python 版本
virtualenv -p /usr/bin/python2.7 my_project
或者在环境变量配置中加入
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7

激活虚拟环境
(Linux) source my_project/bin/activate
(Windows) my_project\Scripts\activate

退出环境
(Linux) my_project/bin/deactivate
(Windows) my_project\Scripts\deactivate.bat

virtualenv 常用命令选项
virtualenv [OPTIONS] DEST_DIR

Options:
–version     显示版本信息。
-h, –help     显示帮助信息。
-v, –verbose   增加后台输出的信息。
-q, –quiet    控制后台输出的信息。
-p PYTHON_EXE, –python=PYTHON_EXE  
         指定 Python 解释器
–clear      清除虚拟环境中依赖库,初始化环境。
–system-site-packages
         使用当前 Python 主体上已安装的程序库。
–always-copy   一概不使用 符号链接,直接复制文件。
–no-setuptools  Do not install setuptools in the new virtualenv.
–no-pip     Do not install pip in the new virtualenv.
–no-wheel    Do not install wheel in the new virtualenv.

virtualenv 相关扩展

virtualenvwrapper

virtualenv 的扩展包,能方便的管理 virtualenv

安装
环境变量 WORKON_HOME 指定虚拟环境位置
(Linux)
pip install virtualenvwrapper
export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh
(Windows)
pip install virtualenvwrapper-win
WORKON_HOME 默认值是 %USERPROFILE%Envs

基本用法

创建虚拟环境
mkvirtualenv myenv

切换到虚拟环境
workon myenv

虚拟环境和项目分开
mkproject my_project
虚拟环境在 WORKON_HOME 中,项目在 PROJECT_HOME 中

退出虚拟环境
deactivate

删除虚拟环境
rmvirtualenv myenv

其它用法
lsvirtualenv 列举所有的环境。
cdvirtualenv [subdir] 导航到当前激活的虚拟环境的目录中
cdsitepackages [subdir] 和上面的类似,但是是直接进入到 site-packages 目录中
lssitepackages 显示 site-packages 目录中的内容
showvirtualenv [env] 显示指定环境的详情
cpvirtualenv [source] [dest] 复制一份虚拟环境
allvirtualenv 对当前虚拟环境执行统一的命令
add2virtualenv [dir] [dir] 把指定的目录加入当前使用的环境的path中,这常使用
于在多个project里面同时使用一个较大的库的情况
toggleglobalsitepackages -q 控制当前的环境是否使用全局的sitepackages目录

virtualenv-burrito

相当于 virtualenv + virtualenvwrapper ,不过只支持 python 2

autoenv

当进入到一个包含 .env 的目录,autoenv 会自动激活该环境
pip install autoenv

========================================================================

venv

Python3 支持的方式,原名又 pyvenv,python 3.6 已弃用

创建虚拟环境
python3 -m venv /path/to/new/virtual/environment

命令帮助
python3 -m venv -h

usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
            [--upgrade] [--without-pip] [--prompt PROMPT]
            ENV_DIR [ENV_DIR ...]
Creates virtual Python environments in one or more target directories.
positional arguments:
  ENV_DIR              A directory to create the environment in.
optional arguments:
  -h, --help 帮助信息
  --system-site-packages 给虚拟环境访问系统 site-packages 目录的权限
  --symlinks 当系统默认不是符号链接的方式时,尝试使用符号链接而不是复制。
  --copies 尝试使用复制而不是符号链接,即使符号链接是平台默认的方式。
  --clear 在虚拟环境创建之前,删除已存在的虚拟环境目录。
  --upgrade 使用当前 python,升级虚拟环境目录。
  --without-pip 跳过pip的升级或安装
  --prompt PROMPT 为该环境提供一个提示前缀

Once an environment has been created, you may wish to activate it, e.g. by
sourcing an activate script in its bin directory.
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

不同平台激活虚拟环境方法

Platform Shell 激活虚拟环境命令
Posix bash/zsh $ source /bin/activate
fish $ . /bin/activate.fish
csh/tcsh $ source /bin/activate.csh
Windows cmd.exe C:> \Scripts\activate.bat
PowerShell PS C:> \Scripts\Activate.ps1

参考:

  1. virtualenv / venv 使用小结
  2. virtualenv配置python虚拟环境
  3. Pipenv & 虚拟环境
  4. 12. 虚拟环境和包
  5. Python 虚拟环境:Virtualenv
  6. Python3 venv 创建虚拟环境
  7. virtualenv介绍及基本使用
  8. Python中的虚拟环境(Virtualenv)及其工作原理
  9. virtualenvwrapper----Python 虚拟环境管理工具