`
pypy
  • 浏览: 92414 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

sandbox for python

阅读更多
遇到一台机器上部署多个不同的python程序,管理其之间import不同的libs而麻烦

http://virtualenv.openplans.org/

virtualenv通过隔离包目录和系统环境参数来实现多个相对独立的虚拟环境。
这样可避免过多的第三方库因版本依赖造成问题。
同时每个独立的虚拟环境只需通过打包即可分发,方便了系统部署。

1. 安装
[root@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...
[root@CT53-64-BASE ~]#


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


建议使用 virtualenv --no-site-packages env_1 来创建虚拟环境,限制virtualenv 继承全局的site-packages,从而达到完全虚拟环境

完全的新的虚拟python环境
[root@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


[root@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
[root@CT53-64-BASE env_1]# source bin/activate
[color=red](env_1)[/color][root@CT53-64-BASE env_1]#


主要是注意shell前面的提示符变成 (env_1) 这个意味着,你再使用python的 ez_install or pip 安装第三方包到 site-packages 是你这个虚拟python环境的,不会影响到全局的系统python环境

4. 我们可以用 "deactivate" 命令退出虚拟环境
(env_1)[root@CT53-64-BASE env_1]# deactivate
[root@CT53-64-BASE env_1]#






分享到:
评论

相关推荐

    dynamodb-sandbox:研究Python和DynamoDB如何一起生活

    在Python中,可以通过AWS SDK for Python(Boto3)或第三方库如PynamoDB来与DynamoDB进行交互。 描述中提到的"虚拟环境py37ddb",意味着该项目建议在Python 3.7的虚拟环境中运行,这是为了保持开发环境的隔离,避免...

    部署openEuler+python3+chrome+selenium环境

    options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') options.add_argument('--headless') driver = webdriver.Chrome(options=options) driver.get('http://www.baidu.com/') ...

    waq2015-sandbox:Sandbox for the Web à Québec 2015 机器学习研讨会

    "Python"标签表明这个项目主要基于Python语言进行,因为`scikit-learn`是Python的一个库,所以我们可以推断参与者需要具备Python编程基础,特别是对机器学习相关的Python库如`numpy`, `pandas`, 和 `matplotlib`等的...

    python-sandbox:我修改过的各种小型python项目

    在“python-sandbox”这个项目中,我们看到了一个专注于Python编程的个人实践和学习空间。这个压缩包包含了一个名为“python-sandbox-master”的文件夹,很可能代表了项目的主分支或初始版本。通过这个项目,我们...

    Mastering Python Forensics(PACKT,2015)

    we’ll show you cryptographic algorithms that can be used during forensic investigations to check for known files or to compare suspicious files with online services such as VirusTotal or Mobile-...

    Python_Sandbox

    1. **基础语法**:Python以其简洁明了的语法而闻名,包括缩进、变量声明、数据类型(如整型、浮点型、字符串、列表、元组、字典和集合)以及控制结构(如if-else、for循环、while循环)。 2. **函数和模块**:了解...

    porject_python_

    在"webdriver for localhost server"的场景下,这个项目可能涉及到在本地运行的Web服务器上对网页应用进行自动化测试。 `chromedriver.exe`是与Google Chrome浏览器配合使用的Selenium WebDriver实现,称为...

    Vagrant-Sandbox-for-flask-app-with-https:Vagrantfile使用Memcached创建CentOS6 VM,使用SSL和HTTP将Apache重定向到https

    - "sandbox-for-python-webapp" 和 "sandbox-for-flask-app":强调这是Python Web应用,特别是Flask应用的沙箱环境。 - "vagrant-memcached":表示Memcached在Vagrant环境中被使用。 - "coupa":可能是一个相关的...

    gemini-python:Gemini API和Websocket的python客户端

    # Alternatively, for a sandbox environment, set sandbox=True r = gemini . PublicClient ( sandbox = True ) PublicClient方法 r . symbols () r . get_ticker ( "BTCUSD" ) r . get_current_order_book ( ...

    Python-使用AmazonSNS发送推送通知给移动设备

    首先,我们需要确保已经安装了AWS SDK for Python(Boto3)。Boto3是官方的Python接口,用于与AWS服务交互。如果没有安装,可以使用以下命令进行安装: ```bash pip install boto3 ``` 接下来,我们需要设置AWS...

    Python + selenium + crontab实现每日定时自动打卡功能

    self.chrome_options.add_argument('--no-sandbox') # 这个配置很重要 self.client = None self.index_url = 'https://xxxxx/xxxx/login' self.report_url = 'https://xxxx/xxxx/report' self.data = [ ('...

    Python库 | paypalrestsdk-1.0.1.tar.gz

    'mode': 'sandbox', # 或者 'live' for live mode 'client_id': 'your_client_id', 'client_secret': 'your_client_secret' }) ``` 创建支付示例: ```python payment = paypalrestsdk.Payment({ "intent": ...

    Python库 | paypalrestsdk-1.11.5.tar.gz

    'mode': 'sandbox', # 或者 'live' for live environment 'client_id': 'your_client_id', 'client_secret': 'your_client_secret' }) # 创建支付 payment = paypalrestsdk.Payment({ "intent": "sale", ...

    sandbox_toolkit:二进制iOS OS X沙箱配置文件的工具包

    compile_sb - a sandbox script to binary compiler for iOS and OS X extract_sbops - a sandbox operation names extractor for iOS and OS X extract_sbprofiles - a sandboxd built-in binary profiles ...

    Python库 | django-salesforce-0.6.2.1.tar.gz

    'HOST': 'https://login.salesforce.com', # 或者'https://test.salesforce.com' for sandbox 'PORT': '', } } ``` **学习与进阶** 要深入理解和使用`django-salesforce`,建议熟悉Django和Salesforce的基础...

    snowclient.py:现在服务python中的客户端

    立即服务的Python Api客户端。 Api客户端。 用法 请参阅docs目录中的。 tl; dr- # re-tailor for your own uses (tablename here is 'incident', base url, auth, etc) client = Client ( ...

    机器学习-源代码

    If you have trouble running any of the examples us know on the Forum for this book: http://www.manning-sandbox.com/forum.jspa?forumID=728. If you want to run these on some other version of Python ...

    Sandbox:各种测试,演示项目

    在IT行业中,沙盒环境是一种常用的开发和测试工具,它允许开发者在一个隔离的环境中尝试、...通过这个名为"Sandbox-master"的压缩包,我们可以期待一个全面、实用的Python测试和演示集合,涵盖了广泛的Python编程技术。

    Selenium ChromeDriver v2.33 for_linux32

    chrome_options.add_argument('--no-sandbox') # 可能需要在某些环境下添加此参数 driver = webdriver.Chrome('/path/to/your/chromedriver', chrome_options=chrome_options) ``` 这里,`'/path/to/your/...

    Python搭建APNS苹果推送通知推送服务的相关模块使用指南

    apns = APNs(use_sandbox=True, cert_file='cert.pem', key_file='key.pem') # 发送单个通知 token_hex = 'b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b87' payload = Payload(alert="Hello World!", ...

Global site tag (gtag.js) - Google Analytics