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 相关文章推荐
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
Jan 22 Python
优化Python代码使其加快作用域内的查找
Mar 30 Python
Python os模块学习笔记
Jun 21 Python
Pycharm取消py脚本中SQL识别的方法
Nov 29 Python
python requests.post带head和body的实例
Jan 02 Python
Python按钮的响应事件详解
Mar 04 Python
python基于itchat模块实现微信防撤回
Apr 29 Python
django中SMTP发送邮件配置详解
Jul 19 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
python爬虫请求头的使用
Dec 01 Python
Python用requests库爬取返回为空的解决办法
Feb 21 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 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
header()函数使用说明
2006/11/23 PHP
php 中文和编码判断代码
2010/05/16 PHP
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
php截取中文字符串函数实例
2015/02/23 PHP
详解php协程知识点
2018/09/21 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
jquery.validate使用攻略 第五步 正则验证
2010/07/01 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
JS提交form表单实例分析
2015/12/10 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
使用python实现个性化词云的方法
2017/06/16 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
Python 多个图同时在不同窗口显示的实现方法
2019/07/07 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
Python实现PS滤镜中的USM锐化效果
2020/12/04 Python
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
毕业自荐书
2013/12/09 职场文书
建设工地安全标语
2014/06/07 职场文书
2014年组织部工作总结
2014/11/14 职场文书
大学生毕业评语
2014/12/31 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书