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中类的一些方法分析
Sep 25 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
Python探索之自定义实现线程池
Oct 27 Python
python语言中with as的用法使用详解
Feb 23 Python
Python中的函数作用域
May 07 Python
python直接获取API传递回来的参数方法
Dec 17 Python
20行python代码实现人脸识别
May 05 Python
pycharm new project变成灰色的解决方法
Jun 27 Python
python装饰器代替set get方法实例
Dec 19 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
Jun 24 Python
django 将自带的数据库sqlite3改成mysql实例
Jul 09 Python
Python判断字符串是否为合法标示符操作
Sep 03 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与数据库代码开发规范
2013/08/08 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
php结合安卓客户端实现查询交互实例
2015/05/05 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
PHP单例模式详细介绍
2015/07/01 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
php cookie 详解使用实例
2016/11/03 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
Bootstrap布局方式详解
2016/05/27 Javascript
Angular2自定义分页组件
2017/04/19 Javascript
js Dom实现换肤效果
2017/10/21 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
vue 路由子组件created和mounted不起作用的解决方法
2019/11/05 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
Python随机函数random()使用方法小结
2018/04/29 Python
对python的文件内注释 help注释方法
2018/05/23 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
10个顶级Python实用库推荐
2021/03/04 Python
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
创联软件面试题笔试题
2012/10/07 面试题
大学军训感言1500字
2014/03/09 职场文书
课程改革实施方案
2014/03/16 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
商业计划书格式、范文
2019/03/21 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
Python3的进程和线程你了解吗
2022/03/16 Python