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遍历类中所有成员的方法
Mar 18 Python
python实现简易通讯录修改版
Mar 13 Python
Python修改文件往指定行插入内容的实例
Jan 30 Python
python 同时读取多个文件的例子
Jul 16 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
解决Python使用列表副本的问题
Dec 19 Python
python 操作hive pyhs2方式
Dec 21 Python
pytorch程序异常后删除占用的显存操作
Jan 13 Python
简单了解django文件下载方式
Feb 10 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
python 下载文件的几种方式分享
Apr 07 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中读取和写入WORD文档的代码
2008/04/09 PHP
封装一个PDO数据库操作类代码
2009/09/09 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
2010/10/22 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
js HTML5 canvas绘制图片的方法
2017/09/08 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
Django 自动生成api接口文档教程
2019/11/19 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
幼儿园教师获奖感言
2014/03/11 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
工程承包协议书范本
2014/09/29 职场文书
股份转让协议书范本
2015/01/27 职场文书
大国崛起观后感
2015/06/02 职场文书
2016新年年会主持词
2015/07/06 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers
聊聊redis-dump工具安装问题
2022/01/18 Redis