设为首页 收藏本站
查看: 949|回复: 0

[经验分享] sandbox for python

[复制链接]

尚未签到

发表于 2017-4-22 10:05:08 | 显示全部楼层 |阅读模式
遇到一台机器上部署多个不同的python程序,管理其之间import不同的libs而麻烦
http://virtualenv.openplans.org/
virtualenv通过隔离包目录和系统环境参数来实现多个相对独立的虚拟环境。
这样可避免过多的第三方库因版本依赖造成问题。
同时每个独立的虚拟环境只需通过打包即可分发,方便了系统部署。
1. 安装
[iyunv@CT53-64-BASE ~]# pip install -U virtualenv
Downloading/unpacking virtualenv
Downloading virtualenv-1.5.1.tar.gz (1.4Mb): 1.4Mb downloaded
Running setup.py egg_info for package virtualenv
warning: no previously-included files matching '*.*' found under directory 'docs/_templates'
Installing collected packages: virtualenv
Found existing installation: virtualenv 1.5.1
Uninstalling virtualenv:
Successfully uninstalled virtualenv
Running setup.py install for virtualenv
warning: no previously-included files matching '*.*' found under directory 'docs/_templates'
Installing virtualenv script to /usr/bin
Successfully installed virtualenv
Cleaning up...
[iyunv@CT53-64-BASE ~]#

2. 创建虚拟环境
[iyunv@CT53-64-BASE ~]# virtualenv env_1
New python executable in env_1/bin/python
Installing setuptools............done.
[iyunv@CT53-64-BASE ~]# ls env_1/
bin  include  lib  lib64
[iyunv@CT53-64-BASE ~]#

建议使用 virtualenv --no-site-packages env_1 来创建虚拟环境,限制virtualenv 继承全局的site-packages,从而达到完全虚拟环境
完全的新的虚拟python环境
[iyunv@CT53-64-BASE env_1]# cd include/python2.4/
abstract.h       codecs.h         errcode.h        grammar.h        marshal.h        objimpl.h        pyconfig-64.h    pymem.h          setobject.h      token.h
bitset.h         compile.h        eval.h           import.h         metagrammar.h    opcode.h         pyconfig.h       pyport.h         sliceobject.h    traceback.h
boolobject.h     complexobject.h  fileobject.h     intobject.h      methodobject.h   osdefs.h         py_curses.h      pystate.h        stringobject.h   tupleobject.h
bufferobject.h   cStringIO.h      floatobject.h    intrcheck.h      modsupport.h     parsetok.h       pydebug.h        pystrtod.h       structmember.h   ucnhash.h
cellobject.h     datetime.h       frameobject.h    iterobject.h     moduleobject.h   patchlevel.h     pyerrors.h       Python.h         structseq.h      unicodeobject.h
ceval.h          descrobject.h    funcobject.h     listobject.h     node.h           pgen.h           pyfpe.h          pythonrun.h      symtable.h       weakrefobject.h
classobject.h    dictobject.h     genobject.h      longintrepr.h    Numeric/         pgenheaders.h    pygetopt.h       pythread.h       sysmodule.h
cobject.h        enumobject.h     graminit.h       longobject.h     object.h         pyconfig-32.h    pymactoolbox.h   rangeobject.h    timefuncs.h

[iyunv@CT53-64-BASE env_1]# python
Python 2.4.3 (#1, Sep  3 2009, 15:37:37)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> for i in sys.path:
...     print i
...
/usr/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg
/usr/lib/python2.4/site-packages/celery-2.0.3-py2.4.egg
/usr/lib/python2.4/site-packages/uuid-1.30-py2.4.egg
/usr/lib/python2.4/site-packages/multiprocessing-2.6.2.1-py2.4-linux-x86_64.egg
/usr/lib/python2.4/site-packages/pyparsing-1.5.5-py2.4.egg
/usr/lib/python2.4/site-packages/carrot-0.10.6-py2.4.egg
/usr/lib/python2.4/site-packages/anyjson-0.2.5-py2.4.egg
/usr/lib/python2.4/site-packages/SQLAlchemy-0.6.4-py2.4.egg
/usr/lib/python2.4/site-packages/python_dateutil-1.5-py2.4.egg
/usr/lib/python2.4/site-packages/importlib-1.0.2-py2.4.egg
/usr/lib/python2.4/site-packages/amqplib-0.6.1-py2.4.egg
/usr/lib/python2.4/site-packages/pip-0.8.1-py2.4.egg
/usr/lib64/python24.zip
/usr/lib64/python2.4
/usr/lib64/python2.4/plat-linux2
/usr/lib64/python2.4/lib-tk
/usr/lib64/python2.4/lib-dynload
/usr/lib64/python2.4/site-packages
/usr/lib64/python2.4/site-packages/Numeric
/usr/lib64/python2.4/site-packages/PIL
/usr/lib64/python2.4/site-packages/gst-0.10
/usr/lib64/python2.4/site-packages/gtk-2.0
/usr/lib/python2.4/site-packages
>>>

3. 激活这个虚拟python环境,其实主要是为了得到专属的虚拟site-packages
[iyunv@CT53-64-BASE env_1]# source bin/activate
(env_1)[iyunv@CT53-64-BASE env_1]#

主要是注意shell前面的提示符变成 (env_1) 这个意味着,你再使用python的 ez_install or pip 安装第三方包到 site-packages 是你这个虚拟python环境的,不会影响到全局的系统python环境
4. 我们可以用 "deactivate" 命令退出虚拟环境
(env_1)[iyunv@CT53-64-BASE env_1]# deactivate
[iyunv@CT53-64-BASE env_1]#

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-367631-1-1.html 上篇帖子: Python导入Modules 下篇帖子: python学习摘要
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表