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中unittest用法实例
Sep 25 Python
web.py 十分钟创建简易博客实现代码
Apr 22 Python
Django rest framework基本介绍与代码示例
Jan 26 Python
Python 获取div标签中的文字实例
Dec 20 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
python开发之anaconda以及win7下安装gensim的方法
Jul 05 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
Python实现屏幕录制功能的代码
Mar 02 Python
基于Python3.7.1无法导入Numpy的解决方式
Mar 09 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
Jul 01 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
python pip如何手动安装二进制包
Sep 30 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写的采集程序
2007/03/16 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
表单提交验证类
2006/07/14 Javascript
去除链接虚线全面分析总结
2006/08/15 Javascript
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
Jquery 一次处理多个ajax请求的代码
2011/09/02 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
React 组件间的通信示例
2018/06/14 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
python定时关机小脚本
2018/06/20 Python
Python多线程原理与用法详解
2018/08/20 Python
python实现键盘控制鼠标移动
2020/11/27 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
Python request中文乱码问题解决方案
2020/09/17 Python
pytorch简介
2020/11/11 Python
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
C语言基础笔试题
2013/04/27 面试题
大学生毕业自我鉴定范文
2013/09/19 职场文书
平面设计师的工作职责
2013/11/21 职场文书
经济管理专业自荐信
2013/12/30 职场文书
募捐倡议书
2014/04/14 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书