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 ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
详解使用python的logging模块在stdout输出的两种方法
May 17 Python
Python基于回溯法子集树模板解决数字组合问题实例
Sep 02 Python
Python使用struct处理二进制的实例详解
Sep 11 Python
rabbitmq(中间消息代理)在python中的使用详解
Dec 14 Python
python 函数内部修改外部变量的方法
Dec 18 Python
Python批量生成幻影坦克图片实例代码
Jun 04 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
django序列化serializers过程解析
Dec 14 Python
Python @property装饰器原理解析
Jan 22 Python
五种Python转义表示法
Nov 27 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
MySQL中create table语句的基本语法是
2007/01/15 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
如何用php获取文件名后缀
2013/06/09 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
创联软件面试题笔试题
2012/10/07 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
学校办公室主任职责
2013/12/27 职场文书
会计主管岗位职责
2014/01/03 职场文书
超级搞笑检讨书
2014/01/15 职场文书
宣传口号大全
2014/06/16 职场文书
学校党员对照检查材料
2014/08/28 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
微信小程序和php的登录实现
2021/04/01 PHP
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers