python环境隔离Virtualenv介绍

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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容