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字符串加密解密的三种方法分享(base64 win32com)
Jan 19 Python
Python访问MySQL封装的常用类实例
Nov 11 Python
python中abs&amp;map&amp;reduce简介
Feb 20 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
dataframe 按条件替换某一列中的值方法
Jan 29 Python
python代码 FTP备份交换机配置脚本实例解析
Aug 01 Python
flask实现验证码并验证功能
Dec 05 Python
关于Tensorflow分布式并行策略
Feb 03 Python
python模拟点击网页按钮实现方法
Feb 25 Python
python可迭代对象去重实例
May 15 Python
解决Keras 自定义层时遇到版本的问题
Jun 16 Python
Python timeit模块原理及使用方法
Oct 10 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
mysql+php分页类(已测)
2008/03/31 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
Python Queue模块详解
2014/11/30 Python
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
python实现文件路径和url相互转换的方法
2015/07/06 Python
常见python正则用法的简单实例
2016/06/21 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
python调用摄像头的示例代码
2020/09/28 Python
伦敦最有品味的百货:Liberty London
2016/11/12 全球购物
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
初中校园之声广播稿
2014/01/15 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
法制宣传月活动总结
2014/04/29 职场文书
教师廉政准则心得体会
2016/01/20 职场文书