virtualenv是一个工具, 用来创建隔离的Python环境, 可以称为”虚境”. 在这些类似于平行空间的"虚境"之间, 整个python环境的库, 依赖, 都是互相不干扰的. 能够避免拥有多个python应用时, 相互干扰的情况.
virtualenv的官方网站是 https://virtualenv.pypa.io
0x01安装
$ [sudo] pip install virtualenv
0x02使用
创建虚境
$ virtualenv ENV
会生成以下目录:
- ENV
整个环境的目录 - ENV/lib, ENV/include
这个环境的安装的库文件 - ENV/lib/pythonX.x/site-packages/
本环境安装的包在这个目录下 - ENV/bin
python的执行文件所在
进入虚境
$ source bin/active
退出虚境
$ deactivate ~
删除虚境
$ rm -r /path/to/ENV
继承系统python环境
virualenv --system-site-packages ENV
虚境将会继承系统安装的packages
不带bin/python使用Vituralenv
有时候, 你不能, 或者不想使用虚境的Python解释器, 例如在一个mod_python或者mod_wsgi环境中. 但是你可以使用虚境中的库.
你只需要这样:
activate_this = '/path/to/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
注意: 这种方式下,会改变sys.path和sys.prefix, 另外系统python的库同时可访问, 并且不能退出虚境.
浮动虚境
通常虚境是绑定到特定路径(目录)的, 你不能移动它, 或者复制到另一个电脑. 通过以下命令可以创建浮动的虚境, 能够被复制或者移动, 但是目前可能有问题, 是测试状态.
创建浮动虚境:
$ virtualenv --relocatable ENV
使用pip导出和导入虚境配置
pip freeze > reuirement.txt
pip install -r requirement.txt
这应该是正常的实现类似浮动虚境的方式.
--extra-search-dir选项
允许使用虚境之外的pip等安装工具.