美文网首页
python环境隔离Virtualenv介绍

python环境隔离Virtualenv介绍

作者: hdc海盗船 | 来源:发表于2016-10-17 16:21 被阅读0次

virtualenv 介绍

virualenv is a tool to create isolated Python environments.

virtualenv创建一个独立的安装目录环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库。

virtualenv通过创建独立Python开发环境的工具, 来解决依赖、版本以及间接权限问题。比如同一依赖包版本跨度过大, 导致不兼容使项目无法正在运行, 使用virtualenv可以解决这些问题,或者当需要使用不同python版本也可以通过该方式解决。

安装Virtualenv

直接通过pip安装,需要pip版本1.3以上
shell> pip install virtualenv

通过源码包安装
shell> curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz
shell> tar xvfz virtualenv-X.X.tar.gz
shell> cd virtualenv-X.X
shell>  python setup.py install

Virtualenv使用

安装完毕之后,可以使用virtualenv管理python环境

创建虚拟环境
shell> mkdir -p /app/python/
shell> cd /app/python/


#将会创建一个名为ENV3的目录, 并且安装了ENV3/bin/python, 创建了lib,include,bin目录,安装了pip,默认不会访问系统共享库.

shell> virtualenv  ENV3
Using base prefix '/usr/local/python3'
New python executable in /app/python/ENV3/bin/python3.4
Also creating executable in /app/python/ENV3/bin/python
Installing setuptools, pip, wheel...done.

shell> ll ENV3/
drwxr-xr-x 2 root root 4096 10月 12 17:01 bin
drwxr-xr-x 2 root root 4096 10月 12 16:58 include
drwxr-xr-x 3 root root 4096 10月 12 16:58 lib
-rw-r--r-- 1 root root   60 10月 12 17:01 pip-selfcheck.json

`lib`,所有安装的python库都会放在这个目录中的`lib/pythonx.x/site-packages/`下
`bin`,`bin/python`是在当前环境是使用的python解释器

-p PYTHON_EXE, --python=PYTHON_EXE:指定默认的python解释器

--system-site-packages:指定虚拟环境访问系统共享库。
--always-copy:默认拷贝文件而不是做软连接。
--no-pip:创建新环境时不安装pip。
--relocatable:将ENV修改为可更改位置的ENV,将所有脚本文件修改为相对路径。目前版本存在问题,可能无效。


创建python2.7环境
shell> virtualenv --python=/usr/local/python/bin/python --system-site-packages ENV27
激活使用虚拟环境
激活虚拟环境
shell> source ENV3/bin/activate

# 注意此时终端发生了变化
(ENV3) # python -V
Python 3.4.4

(ENV3) # pip list
pip (8.1.2)
setuptools (28.3.0)
wheel (0.30.0a0)

进入python2虚拟环境
shell> source ENV27/bin/activate
(ENV27) # python -V
Python 2.7.9
(ENV27) # pip list
APScheduler (3.0.5)
mysql-connector-python (1.2.3)
pip (8.1.2)
setuptools (28.3.0)
wheel (0.30.0a0)
退出虚拟环境
shell> deactivate

小结

virtualenv通过把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令pythonpip均指向当前的virtualenv环境。

virtualenv为应用提供了隔离的Python运行环境,可以解决不同应用间多版本的冲突问题。

更多详情:
https://virtualenv.pypa.io/en/latest/

相关文章

网友评论

      本文标题:python环境隔离Virtualenv介绍

      本文链接:https://www.haomeiwen.com/subject/rhimjttx.html