Python的virtualenv虚拟环境
# 介绍
virtualenv 是一个创建独立Python环境的工具。
# 安装
本次安装版本为:16.0.0
建议安装virtualenv-1.9或更高版本。在1.9版之前,virtualenv中包含的pip没有通过SSL从PyPI下载。
要使用pip进行全局安装(如果全局安装了pip 1.3或更高版本):
$ [sudo] pip install virtualenv
或者获取最新的未发布的开发版本:
$ [sudo] pip install https://github.com/pypa/virtualenv/tarball/master
要从源代码全局安装XX版本:
$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz
$ tar xvfz virtualenv-X.X.tar.gz
$ cd virtualenv-X.X
$ [sudo] python setup.py install
2
3
4
要从源本地使用:
$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz
$ tar xvfz virtualenv-X.X.tar.gz
$ cd virtualenv-X.X
$ python virtualenv.py myVE
2
3
4
# 使用
# 创建一个虚拟环境
创建虚拟环境命令为:
$ virtualenv ENV
其中:ENV表示你想在哪个目录下创建虚拟环境, 它在目录 ENV 里会初始化虚拟环境的相关目录和文件,包括 Python 语言本身的环境以及 pip 等相关程序都会在这个目录里创建(拷贝)一份新的。
例如:创建一个虚拟环境为django,则命令如下:
$ virtualenv django
New python executable in /Users/fangzheng/PycharmProjects/django/bin/python
Installing setuptools, pip, wheel...done.
2
3
如果django这个目录不存在,则会自动创建。
# OPTIONS
# --no-site-packages 参数:
默认情况下,虚拟环境会依赖系统环境中的 sit package,就是说系统中已经安装好的第三方 package 也会安装在虚拟环境中,如果不想依赖这些 package,那么可以加上 --no-site-packages
参数建立虚拟环境。
$ virtualenv --no-site-packages [虚拟环境名称]
# --system-site-packages 参数:
如果你使用 --system-site-packages
参数创建虚拟环境,你创建的虚拟环境会继承 /usr/local/python34/lib/python3.4/site-packages
$ virtualenv --system-site-packages ENV
# --extra-search-dir 参数:
如果你使用 --extra-search-dir
参数创建虚拟环境,这允许你提供自己的 setuptools 版本,而不是使用虚拟环境中嵌入的版本。
$ virtualenv --extra-search-dir=/path/to/distributions ENV
/path/to/distributions 参数: 指定一个包含 setuptools 以及 pip、wheels 等的目录。virtualenv 命令会在指定的目录中,寻找 wheels,但是会使用 pip 的标准的算法来选择安装的 wheel。
# 激活环境
激活命令为:source {虚拟环境目录}bin/activate
例如:激活刚才创建的django环境
fangzheng@localhost$ cd django
fangzheng@localhost$ source bin/activate
(django) fangzheng@localhost$
2
3
激活成功后,virtualenv还将修改shell提示符以指示当前活动的环境。这里是(django)
# 关闭环境
要关闭虚拟环境,不用进入bin目录,只需直接执行deactivate即可。
$ deactivate
# 删除环境
要删除环境,需要先关闭环境,然后直接删除虚拟环境的目录即可。
(django)$ deactivate
$ rm -r django
2
# 常用命令
命令语法:virtualenv [OPTIONS] ENV_DIR
其中ENV_DIR表示虚拟环境的绝对路径或者相对路径
# 选项列表
选项
--version
显示程序的版本号并退出
-h, --help
显示此帮助消息并退出
-v, --verbose
增加冗长度。
-q, --quiet
减少冗长。
-p PYTHON_EXE, --python=PYTHON_EXE
要使用的Python解释器,例如-python = python2.5,将使用python2.5解释器来创建新环境。默认是virtualenv安装的解释器(如/usr/bin/python)
例如:创建一个python3的虚拟环境
virtualenv -p/usr/local/bin/python3 data_quality
--clear
清除非root用户安装并从头开始。
--system-site-packages
授予虚拟环境访问全局站点包的权限。
--always-copy
始终复制文件而不是符号链接。
--relocatable
使一个现有的virtualenv环境可重定位。这会修复脚本并使所有.pth文件相对。
--unzip-setuptools
安装时解压缩Setuptools。
--no-setuptools
不要在新的virtualenv中安装setuptools。
--no-pip
不要在新的virtualenv中安装pip。
--no-wheel
不要在新的virtualenv中安装车轮。
--extra-search-dir=DIR
用于查找setuptools / pip分布的目录。可以多次指定此选项。
--prompt=PROMPT
为此环境提供备用提示前缀。
--download
从PyPI下载预安装的软件包。
--no-download
不要从PyPI下载预安装的软件包。
--no-site-packages
已过时。仅保留向后兼容性。现在无法访问全局站点包是默认行为。
--distribute
--setuptools
遗产; 现在没有效果。在版本1.10之前,这些可用于选择是否将Distribute或Setuptools安装到创建的virtualenv中。Distribute现已合并到Setuptools中,后者始终安装。
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61