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的框架中一些会话程序的管理
Apr 20 Python
python中lambda与def用法对比实例分析
Apr 30 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
Python序列操作之进阶篇
Dec 08 Python
Python实现爬虫爬取NBA数据功能示例
May 28 Python
Python用于学习重要算法的模块pygorithm实例浅析
Aug 16 Python
Python学习笔记之For循环用法详解
Aug 14 Python
python图片二值化提高识别率代码实例
Aug 24 Python
python向图片里添加文字
Nov 26 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
Python SMTP配置参数并发送邮件
Jun 16 Python
浅析python 字典嵌套
Sep 29 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的数据库抽象层函数库
2006/10/09 PHP
遍历指定目录下的所有目录和文件的php代码
2011/11/27 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
php微信开发自定义菜单
2016/08/27 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
在html页面上拖放移动标签
2010/01/08 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
2018/04/27 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
探究Python中isalnum()方法的使用
2015/05/18 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
应聘教师求职信范文
2015/03/20 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
高中政治教师教学反思
2016/02/23 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
详细总结Python常见的安全问题
2021/05/21 Python
nginx日志格式分析和修改
2022/04/28 Servers
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS