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打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
在Django中使用Sitemap的方法讲解
Jul 22 Python
对Python进行数据分析_关于Package的安装问题
May 22 Python
Python中enumerate函数代码解析
Oct 31 Python
python中学习K-Means和图片压缩
Nov 20 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
Apr 27 Python
Python中存取文件的4种不同操作
Jul 02 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
python小程序实现刷票功能详解
Jul 17 Python
wxPython实现整点报时
Nov 18 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
Python实现JS解密并爬取某音漫客网站
Oct 23 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实现字符串翻转的方法
2015/03/27 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
JavaScript 对象、函数和继承
2009/07/07 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
2016/06/30 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
vue实现计算器功能
2020/02/22 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
python实现自动解数独小程序
2019/01/21 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
Python numpy数组转置与轴变换
2019/11/15 Python
python之语音识别speech模块
2020/09/09 Python
介绍下static、final、abstract区别
2015/01/30 面试题
《九寨沟》教学反思
2014/04/08 职场文书
勤俭节约倡议书
2014/04/14 职场文书
前台接待岗位职责
2015/02/03 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
OpenCV实现普通阈值
2021/11/17 Java/Android
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python