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修改Excel数据的实例代码
Nov 01 Python
python切换hosts文件代码示例
Dec 31 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
详解Python 切片语法
Jun 10 Python
Pytorch加载部分预训练模型的参数实例
Aug 18 Python
基于python实现雪花算法过程详解
Nov 16 Python
python 正则表达式参数替换实例详解
Jan 17 Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
OpenCV读取与写入图片的实现
Oct 13 Python
python Polars库的使用简介
Apr 21 Python
opencv深入浅出了解机器学习和深度学习
Mar 17 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
PHP中比较时间大小实例
2014/08/21 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
jquery之Document元素选择器篇
2008/08/14 Javascript
Prototype 学习 Prototype对象
2009/07/12 Javascript
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
python直接访问私有属性的简单方法
2016/07/25 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
keras.layer.input()用法说明
2020/06/16 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
施华洛世奇天猫官方旗舰店:SWAROVSKI
2017/04/17 全球购物
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
物流创业计划书
2014/02/01 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
教师求职信
2014/06/17 职场文书
东京审判观后感
2015/06/01 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书