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实现复制整个目录的方法
May 12 Python
python导入时小括号大作用
Jan 10 Python
python2 与python3的print区别小结
Jan 16 Python
Python操作MySQL数据库的三种方法总结
Jan 30 Python
python-tkinter之按钮的使用,开关方法
Jun 11 Python
django 通过url实现简单的权限控制的例子
Aug 16 Python
python并发爬虫实用工具tomorrow实用解析
Sep 25 Python
关于sys.stdout和print的区别详解
Dec 05 Python
Python实现线性判别分析(LDA)的MATLAB方式
Dec 09 Python
openCV提取图像中的矩形区域
Jul 21 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
Feb 19 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
Mar 04 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使用curl下载指定大小的文件实例代码
2017/09/30 PHP
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
基于jQuery的消息提示插件之旅 DivAlert(三)
2010/04/01 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
vue实现鼠标经过动画
2019/10/16 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python实现解数独程序代码
2017/04/12 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
Python 项目转化为so文件实例
2019/12/23 Python
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
意外伤害赔偿协议书范本
2014/09/28 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫