Python环境管理--virtualenvwrapper

遇到问题:

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

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

因此须要对环境进行管理,才不会使开发环境和运行环境混乱。react

 

解决问题:

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

功能:服务器

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

安装:app

pip install virtualenvwrapper

使用:svn

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

举例:工具

新建虚拟环境: post

mkvirtualenv Test

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

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$ 

以后能够经过上述“使用”中列出的命令进行虚拟环境的操做。spa

 

管理实践:

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

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

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

pip install -r requirements.txt

以后若是有什么扩展包的安装,能够经过上述 第1步 和 第2步 的方式对开发环境和部署环境进行很好的管理。

相关文章
相关标签/搜索