隔离python环境的virtualenv

virtualenv用于创建独立的Python环境,解决多版本和模块依赖问题,避免不同应用间的冲突。通过安装virtualenv,使用`virtualenv <env_name>`创建环境。在新环境中,模块的安装和使用都在隔离目录下,确保不会影响全局或其他环境。

为什么要使用virtualenv

virtualenv 用来创建隔离的Python环境。

处理python环境的多版本和模块依赖,以及相应的权限是一个很常见的问题。比如,你有个应用使用的是LibFoo V1.0,但另一个应用却要用到LibFoo V2.0。 如何处理呢?如果把所有模块都安装到 /usr/lib/python2.7/site-packages (或是你本机python默认的模块安装目录),那你极有可能无意中升级一些不该升级的模块。

更普遍的是,就算你成功安装了某个应用,那么接下来又会怎样?只要它开始运行了,那么只要其所依赖的模块发生任何改动,亦或升级,都可能打断该应用。

这还没完,要是你无法在 site-packages 目录下安装模块呢?比如共享主机。

上述这几种场合都适用 virtualenv 。它会创建一个拥有独立安装目录的python环境,该隔离环境不会与其他virtualenv环境共享模块(可选择是否访问全局库目录)。


如何使用virtualenv

运行 pip install virtualenv 即可安装virtualenv。

在已安装virtualenv的情况下,可以直接运行ENV 来创建隔离的python环境。

如:

<pre name="code" class="php">~#virtualenv /tmp/liu 
~#cd /tmp/liu
/tmp/liu# ls
bin  lib  local  pip-selfcheck.json

该操作会在/tmp/liu目录下面创建一个隔离的 python环境, 里面包含了bin,lib,local等目录。 在virtualenv环境下使用此解释器(包括以 #!/path/to/ENV/bin/python 开头的脚本)时,使用的都是隔离环境下的模块。

如/tmp/liu/bin/pip install ansible或/tmp/liu/local/bin/pip install ansible会在/tmp/liu/bin,/tmp/liu/local/bin,/tmp/liu/local/lib/python2.7/site-packages和/tmp/liu/lib/python2.7/site-packages下面安装ansible。卸载也是一样的。

(/usr/bin/pip install ansible或/usr/local/bin/pip install ansible只会在/usr/local/bin/和/usr/local/lib/python2.7/dist-packages/下面安装ansible,而不会在/usr/bin和/usr/lib/python2.7/dist-packages/下面安装ansible。)


命令选项:
--version
显示当前版本号。
-h, --help
显示帮助信息。
-v, --verbose
显示详细信息。
-q, --quiet
不显示详细信息。
-p PYTHON_EXE, --python=PYTHON_EXE
指定所用的python解析器的版本,比如 --python=python2.5 就使用2.5版本的解析器创建新的隔离环境。 默认使用的是当前系统安装(/usr/bin/python)的python解析器
--clear
清空非root用户的安装,并重头开始创建隔离环境。
--no-site-packages
令隔离环境不能访问系统全局的site-packages目录。
--system-site-packages
令隔离环境可以访问系统全局的site-packages目录。
--unzip-setuptools
安装时解压Setuptools或Distribute
--relocatable
重定位某个已存在的隔离环境。使用该选项将修正脚本并令所有.pth文件使用相当路径。
--distribute
使用Distribute代替Setuptools,也可设置环境变量VIRTUALENV_DISTRIBUTE达到同样效要。
--extra-search-dir=SEARCH_DIRS
用于查找setuptools/distribute/pip发布包的目录。可以添加任意数量的–extra-search-dir路径。
--never-download
禁止从网上下载任何数据。此时,如果在本地搜索发布包失败,virtualenv就会报错。
--prompt==PROMPT
定义隔离环境的命令行前缀。
参考: https://virtualenv-chinese-docs.readthedocs.org/en/latest/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值