• Python环境管理--virtualenvwrapper


    遇到问题:

    当最近的开发和部署过程中,多个服务器部署的时候发现对于库和包的管理非常混乱,主要有俩个版本问题:

    1. 因为业务需要,代码得分别部署在不同的服务器上面,每次部署的时候都得重复的安装包而且不能确定是否跟开发环境中的包版本相同
    2. 在本地环境下,不同的程序得用到不同版本的库和包,为了防止不同程序之间的混乱

    所以需要对环境进行管理,才不会使开发环境和运行环境混乱。

    解决问题:

    最开始我尝试使用了Virtualenv,之后找到了Virtualenv的延伸工具-----virtualenvwrapper,发现这个让环境管理变的更加的容易。

    功能:

    • 将所有的虚拟环境整合在一个目录下。
    • 管理(新增、移除、复制)所有的虚拟环境。
    • 可以使用一个命令切换虚拟环境。
    • Tab 补全虚拟环境的名字。

    安装:

    pip install virtualenvwrapper

    使用:

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

    举例:

    新建虚拟环境: 

    mkvirtualenv Test

    终端会显示,虚拟环境的创建过程,创建成功后会自动进入该虚拟环境:

    chenxing@Ubuntu:~/project/GamePF/s/init$ mkvirtualenv Test
    New python executable in Test/bin/python
    Installing setuptools, pip...done.
    virtualenvwrapper.user_scripts creating /home/chenxing/.virtualenvs/Test/bin/predeactivate
    virtualenvwrapper.user_scripts creating /home/chenxing/.virtualenvs/Test/bin/postdeactivate
    virtualenvwrapper.user_scripts creating /home/chenxing/.virtualenvs/Test/bin/preactivate
    virtualenvwrapper.user_scripts creating /home/chenxing/.virtualenvs/Test/bin/postactivate
    virtualenvwrapper.user_scripts creating /home/chenxing/.virtualenvs/Test/bin/get_env_details
    (Test)chenxing@Ubuntu:~/project/GamePF/s/init$ 

    之后可以通过上述“使用”中列出的命令进行虚拟环境的操作。

    管理实践:

      最后当你建立好虚拟环境之后,可以在虚拟环境中安装自己项目所依赖的包,你所安装的包,会在你创建的虚拟环境下面,与外界的开发环境隔离开来,之后你可以通过生成requirements.txt的方式将项目所依赖的所有包以及包的版本写入该文件:

    1. 将包依赖信息写入requirements.txt中:
    pip freeze > requirements.txt

       2. 之后可以将该包上传到项目版本管理工具(svn, git)中,服务器拿到代码后,通过requirements.txt进行项目包的下载:

    pip install -r requirements.txt

    之后如果有什么扩展包的安装,可以通过上述 第1步 和 第2步 的方式对开发环境和部署环境进行很好的管理。

  • 相关阅读:
    IntelliJ如何设置自动导包
    203.数的表示
    202.磁悬浮动力系统应用研究与模型搭建
    201.一种六磁子交通系统
    200.软件工程_期末_李振宏老师
    199.维护
    SSH学习-Struts2中的session
    SSH学习-Struts2消息传递机制
    SSH学习-struts2配置基本步骤
    云笔记项目-MyBatis关联映射查询
  • 原文地址:https://www.cnblogs.com/ShaunChen/p/6549527.html
Copyright © 2020-2023  润新知