美文网首页
使用virtualenv管理python开发环境

使用virtualenv管理python开发环境

作者: LittleFat | 来源:发表于2015-08-21 01:06 被阅读295次

    背景

    • 不同python版本
      同一电脑上的多个python版本,开发着需要考虑版本兼容
    • 同一python版本中同一库的不同版本管理
      例如在python2.7下应用A是基于Django1.6,应用B是基于Django1.7的,这种情况怎么管理。

    引荐virtualenv, virtualenvwrapper


    “The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into/usr/lib/python2.7/site-packages (or whatever your platform’s standard location is), it’s easy to end up in a situation where you unintentionally upgrade an application that shouldn’t be upgraded.

    Or more generally, what if you want to install an application and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application.

    Also, what if you can’t install packages into the global site-packages directory? For instance, on a shared host.”


    安装

    一般使用pip:

    [sudo] pip install virtualenv
    [sudo] pip install virtualenvwrapper
    

    使用

    创建虚拟环境

    virtualenv pythonenv
    virtualenv pythonenv --no-site-packages  #依赖系统环境中的site packages
    

    启用虚拟环境

    source pythonenv/bin/activate  #linux
    pythonenv\Scripts\activate.bat  #Windows
    

    退出虚拟环境

    pythonenv/bin/deactivate       #linux
    pythonenv\Scripts\deactivate #Windows
    

    虚拟环境的管理

    将所有的虚拟环境整合在一个目录下。
    管理(新增、移除、复制)所有的虚拟环境。
    可以使用一个命令切换虚拟环境。
    Tab 补全虚拟环境的名字。
    每个操作都提供允许使用者自定的hooks。
    可撰写容易分享的extension plugin 系统。

    常用管理命令

    列出虚拟环境列表:workon 或者lsvirtualenv
    新建虚拟环境:mkvirtualenv [虚拟环境名称]
    启动/切换虚拟环境:workon [虚拟环境名称]
    删除虚拟环境:rmvirtualenv [虚拟环境名称]
    离开虚拟环境:deactivate

    总结

    基于virtualenv + virtualenvwrapper可以很好的完成环境隔离,保证对每个应用的环境是干净的。而且对一个干净的环境可以通过:

    pip freeze > requirements.txt将包依赖信息保存在requirements.txt文件

    pip install -r requirements.txt会自动安装所有包, 方便应用部署分发

    相关文章

      网友评论

          本文标题:使用virtualenv管理python开发环境

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