python虚拟环境virtualenv的安装与使用


Posted in Python onSeptember 21, 2017

同一台服务器上部署多个项目时,项目可能使用不同版本的django或者其它不同的python库,这种情况下可以使用virtualenv来创建独立的python运行环境,将不同项目的运行环境隔离出来。 

virtualenv可以创建一个拥有自己安装目录的环境,  能够方便的管理python版本和管理python库。

安装

pip install virtualenv

创建环境

基本命令:

virtualenv ENV

即在ENV目录创建了一个新的虚拟环境。

pip和setuptools已在虚拟环境中自动下载完毕,可以使用这些工具来下载python包。

下载的python包置于ENV/lib/pythonX.X/site-packages中。

当前使用的python解释器为ENV/bin/python。

激活与退出虚拟环境

激活命令:

$ source bin/activate

退出虚拟环境:

$ deactivate

删除虚拟环境

退出虚拟环境后删除目录即可:

(ENV)$ deactivate
$ rm -r /path/to/ENV

继承全局python库

使用以下命令可以创建继承使用/usr/lib/python2.7/site-packages下的python全局库的虚拟环境

virtualenv --system-site-packages ENV

不使用虚拟环境中的python解释器

如果不想或者不能使用虚拟环境中的python解释器bin/python,需要修改使用的python库的路径。

bin目录下有一个文件 activate_this.py:

"""By using execfile(this_file, dict(__file__=this_file)) you will
activate this virtualenv environment.

This can be used when you must use an existing Python interpreter, not
the virtualenv bin/python
"""

更改路径:

activate_this = '/path/to/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

生成可打包的环境

$ virtualenv --relocatable ENV

指定python版本

-p PYTHON_EXE, --python=PYTHON_EXE:指定生成的虚拟环境的python版本

virtualenv -p /usr/bin/python2.7 env

uwsgi中使用virtualenv

部署django项目时,可以使用uwsgi的几个选项来指定项目使用的虚拟环境,--home,--virtualenv,--venv,--pyhome选项,都可简写为-H。

在uwsgi配置文件中添加 virtualenv   =  <path to env>或者运行命令时   $ uwsgi -H myenv。

Python 相关文章推荐
Python中让MySQL查询结果返回字典类型的方法
Aug 22 Python
Python制作CSDN免积分下载器
Mar 10 Python
Python中关于字符串对象的一些基础知识
Apr 08 Python
python保存文件方法小结
Jul 27 Python
强悍的Python读取大文件的解决方案
Feb 16 Python
Python Tkinter 简单登录界面的实现
Jun 14 Python
Python3 Tkinkter + SQLite实现登录和注册界面
Nov 19 Python
python 实现矩阵填充0的例子
Nov 29 Python
基于python3实现倒叙字符串
Feb 18 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
python 瀑布线指标编写实例
Jun 03 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
基于python socketserver框架全面解析
Sep 21 #Python
基于python select.select模块通信的实例讲解
Sep 21 #Python
Python实现小数转化为百分数的格式化输出方法示例
Sep 20 #Python
Python实现字符串格式化输出的方法详解
Sep 20 #Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
Sep 20 #Python
python select.select模块通信全过程解析
Sep 20 #Python
基于python的字节编译详解
Sep 20 #Python
You might like
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
PHP insert语法详解
2008/06/07 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
node.js中的Socket.IO使用实例
2014/11/04 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
2015/12/08 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
前端跨域的几种解决方式总结(推荐)
2017/08/16 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
python发送邮件接收邮件示例分享
2014/01/21 Python
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
高性能装备提升营地:Kammok
2019/02/27 全球购物
入党积极分子思想汇报范文
2014/01/05 职场文书
外联部演讲稿
2014/05/24 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
仲裁协议书
2014/09/26 职场文书
家长会欢迎词
2015/01/23 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
公司人事管理制度
2015/08/05 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技