Python环境管理--virtualenvwrapper
遇到问题:
当最近的开发和部署过程中,多个服务器部署的时候发现对于库和包的管理非常混乱,主要有俩个版本问题:
- 因为业务需要,代码得分别部署在不同的服务器上面,每次部署的时候都得重复的安装包而且不能确定是否跟开发环境中的包版本相同
- 在本地环境下,不同的程序得用到不同版本的库和包,为了防止不同程序之间的混乱
所以需要对环境进行管理,才不会使开发环境和运行环境混乱。
解决问题:
最开始我尝试使用了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的方式将项目所依赖的所有包以及包的版本写入该文件:
- 将包依赖信息写入requirements.txt中:
pip freeze > requirements.txt
2. 之后可以将该包上传到项目版本管理工具(svn, git)中,服务器拿到代码后,通过requirements.txt进行项目包的下载:
pip install -r requirements.txt
之后如果有什么扩展包的安装,可以通过上述 第1步 和 第2步 的方式对开发环境和部署环境进行很好的管理。
Python环境管理--virtualenvwrapper的更多相关文章
- Linux yum的配置 , python环境管理, nginx搭建简单学习
Linux yum的配置 , python环境管理, nginx搭建简单学习 一丶配置yum的数据仓库 ### yum 工具, 方便,自行解决软件之间的依赖关系. # 配置yum源仓库 (可以使用,清 ...
- Python 使用 virtualenvwrapper 安装虚拟环境
装载于https://www.jianshu.com/p/9f47a9801329 Python 使用 virtualenvwrapper 安装虚拟环境 Tim_Lee 关注 2017.05.04 2 ...
- [python]使用virtualenvWrapper
什么是virtualenv virtualenv是python的环境管理工具,用于隔离python的运行环境.也就是说,一个项目可以有一个属于这个项目的运行环境,从而避免了因为依赖不同的模块而产生的错 ...
- Linux 安装Python虚拟环境,virtualenvwrapper
virtualenvwrapper工具学习 1.因为virtualenv 工具使用的并不方便 2.安装virtualenvwrapper pip3 install -i https://pypi.do ...
- python virtualenv virtualenvwrapper
python中的virtualenv模块能够将项目环境分隔开,而不是使用全局的环境,非常实用. 首先pip install virtualenv 如何创建一个环境virtualenv testvir ...
- Django(2)python虚拟环境virtualenvwrapper
python虚拟环境 虚拟环境(virtual environment),它是一个虚拟化,从电脑独立开辟出来的环境.通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西 ...
- Virtualenv: 一个Python环境管理工具(windown版本)
1.安装virtualenv 在安装virtualenv之前,我们需要安装至少有一个版本的python:因为virtualenv是python的一个第三方模块,必须基于python环境才能安装: 如果 ...
- python虚拟环境Virtualenvwrapper无法升降级虚拟环境软件解决方法
virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够在没有权限的情况下安装新套件,不同应用可以使用不同的套件版本,套件升级不影响其他应用. Virtaulen ...
- Anaconda python环境管理
1.查看conda的版本: conda --version 2. 查看当前系统安装已的python环境: conda info --envs 3. 添加python环境: conda create - ...
随机推荐
- 借助HTML5 Blob实现文本信息文件下载
原理其实很简单,我们可以将文本或者JS字符串信息借助Blob转换成二进制,然后,作为<a>元素的href属性,配合download属性,实现下载. 代码也比较简单,如下示意(兼容Chrom ...
- 容斥原理解决某个区间[1,n]闭区间与m互质数数量问题
首先贴出代码(闭区间[1,n]范围内和m互质的数) 代码: int solve(II n,II m){ vector<II>p; ;i*i<=m;i++){ ){ p.push_ba ...
- AttributeError: 'module' object has no attribute 'face'
报错 raceback (most recent call last): File "D:/work/python/face_ai/predict.py", line 41, in ...
- ArcGIS API for JavaScript开发笔记(一)——ArcGIS for Javascript API 3.14本地部署
堪称史上最详细的< ArcGIS forJavascript API 3.14本地部署>文档,有图有真相~~~ ---------环境:Windows server 2012R2,IIS ...
- Python的Flask框架应用调用Redis队列数据的方法
转自:http://www.jb51.net/article/86021.htm 任务异步化 打开浏览器,输入地址,按下回车,打开了页面.于是一个HTTP请求(request)就由客户端发送到服务器, ...
- SDL结合QWidget的简单使用说明(2)
上篇主要讲了针对yv12流数据的渲染,但有时候我们显示视频还要求加一些信息,比如头像,昵称等等.一般的想法是在渲染窗口之上做一个小控件来负责: 但是很遗憾,你会发现你的控件被SDL的渲染完全遮住了,渲 ...
- [py][mx]django实现根据城市和课程机构类别过滤
实现根据城市&课程机构过滤 实现点谁谁高亮,支持取交集. 直接上代码吧 本质上是过滤,多层过滤,取交集 def get(self, request): all_orgs = CourseOrg ...
- POJ1995:Raising Modulo Numbers(快速幂取余)
题目:http://poj.org/problem?id=1995 题目解析:求(A1B1+A2B2+ ... +AHBH)mod M. 大水题. #include <iostream> ...
- PAT 1138 Postorder Traversal [比较]
1138 Postorder Traversal (25 分) Suppose that all the keys in a binary tree are distinct positive int ...
- #C++初学记录(素数判断)
练习题目二 素数判断 A prime number is a natural number which has exactly two distinct natural number divisors ...