用virtualenv管理python3运行环境
1. 简介
virtualenv可以用来管理互不干扰的独立python虚拟环境,在有些场景下非常有用,例如:
- 你有两个python项目,一个是python2.7的,另一个是python3的,可以创建两个虚拟环境。
- 你有两个python项目,都依赖与一个module的不同版本,可以创建两个不同的虚拟环境,里面安装这个module的不同版本。
virtualenvwrapper在virtualenv的基础上提供了一些更方便的命令。
2. 安装
sudo pip install virtualenv
sudo pip install virtualenvwrapper
在~/.bashrc里面加上:
export WORKON_HOME=/home/dev/virtualenv #你创建的虚拟环境所放置的目录
source /usr/local/bin/virtualenvwrapper.sh
然后source ~/.bashrc,就可以使用了
3. 管理环境
首先我们创建一个python3的虚拟环境,当然系统里得先装好了python3。
mkvirtualenv -p python3 py3env
-p 后面的参数指定了python3(也有可能要换成python3.2/python3.4,具体要看你系统里面/use/bin/里面的文件是什么名字),如果去掉这个参数,就会使用系统默认的python。最后一个参数py3env是创建的这个环境的名字。
执行完了之后,会自动切换到这个新创建的虚拟环境。我们会发现命令行提示符会发生改变,例如在我的机器上:从 (py3env)user@vm-ubuntu1204 变成了 (py3env)user@vm-ubuntu1204 ,最前面多了这个虚拟环境的名字。
其他一些常用命令:
deactivate # 退出当前虚拟环境
workon [虚拟环境名称] # 使用某个虚拟环境
rmvirtualenv [虚拟环境名称] # 删除某个虚拟环境
lsvirtualenv # 列出所有虚拟环境
4. 包管理
在实际使用中,我们会用pip来管理python的包,而在虚拟环境里的包是和系统里的包分离开的,虚拟环境之间的包也是隔离开的。
在生产环境中,我们可能需要将程序部署在很多机器上,如果能方便地把依赖的包同步到所有机器上能省去很多时间。
可以在开发机器上执行下面这个命令,来列出所有的包并保存到packages.txt,其中-l参数是只列出当前虚拟环境的包:
pip freeze -l > packages.txt
然后在部署到生产环境的时候,把packages.txt也复制到每个机器,并在每个机器上执行:
pip install -r packages.txt
5. 在pycharm中使用虚拟环境
在设置里面Project Interpreter,点击齿轮那个按钮,选择"Add Local",然后选择刚才创建的虚拟环境的路径。如下图所示:
6. 在虚拟环境中设置默认命令
有些时候,我们希望在进入虚拟环境之后执行某些命令,或者设置一些环境变量。
例如:在django运行的时候,可以通过环境变量DJANGO_SETTINGS_MODULE来指定配置文件的路径。
我们可以在虚拟环境目录下面创建文件bin/postactivate,并在文件里面写入:
export DJANGO_SETTINGS_MODULE=config.django.production
这个文件会在每次进入这个虚拟环境的时候被执行,这样这个参数就会被设置了。
除了postactivate以外,其他阶段也可以有这样的设置,参看:https://virtualenvwrapper.readthedocs.org/en/latest/scripts.html
7. 参考链接
两篇比较好的博文:
postactivate的用法:
http://stackoverflow.com/a/11134336
官方文档:
https://virtualenvwrapper.readthedocs.org/en/latest/
用virtualenv管理python3运行环境的更多相关文章
- 使用virtualenv搭建python3开发环境
问题描述 环境: CentOS6.5 想在此环境下使用python3进行开发,但CentOS6.5默认的python环境是2.6.6版本. 之前的做法是直接从源码安装python3,替换掉现有的开发环 ...
- 使用virtualenv搭建python3的环境
转:http://blog.csdn.net/liuchunming033/article/details/46008301 转:http://www.jb51.net/article/85527.h ...
- SublimeText配置Python3运行环境
1.查看python3安装路径which python3 2.打开sublime text 3,点击上部菜单栏Tools->Build System->new Build System 3 ...
- Win7系统中用anaconda配置tensorflow运行环境
前言:anaconda是一个python Data Science Platform.安装它的契机是因为要用tensorflow. 安装完后感觉用它来管理python运行环境还是挺方便的,常用的con ...
- Linux(4)- centos7安装python3、Linux下安装、配置virtualenv、确保开发环境的一致性、虚拟环境之virtualenvwrapper、vim
一.centos7安装python3 1.下载python3的源码包 下载地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz cd ...
- Ubuntu部署python3.5的开发和运行环境
Ubuntu部署python3.5的开发和运行环境 1 概述 由于最近项目全部由python2.x转向 python3.x(使用目前最新的 python3.5.1) ,之前的云主机的的默认python ...
- deepin系统下部署Python3.5的开发及运行环境
deepin系统下部署Python3.5的开发及运行环境 1 概述 由于最近要学习python接口自动化测试,所以记录一下相关学习经过及经验,希望对大家可以有所帮助. 2 下载 在python官网下载 ...
- Ubuntu部署python3.7的开发和运行环境
Ubuntu部署python3.7的开发和运行环境 1 概述 由于最近项目全部由python2.x转向 python3.x(使用 python3.7.1) ,之前的云主机的的默认python版本都面临 ...
- 用 virtualenv 创建隔离的 Python 运行环境
以 Ubuntu 14.04 系统为例,安装的 Python 和 Python3 分别是 2.7.6 和 3.4.3, 但有些项目,有些模块要求特定的 Python 版本.而当前系统默认的 Pytho ...
随机推荐
- UVa 109 - SCUD Busters(凸包计算)
题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...
- C语言---文件
1. 需要了解的概念 包括:数据流.缓冲区.文件类型.文件存取方式 1.1 数据流: 指程序与数据的交互是以流的形式进行的.进行C语言文件的存取时,都会先进行“打开文件”操作,这个操作就是在打开数据流 ...
- 大家一起和snailren学java-(四)初始化与清理
初始化和清理,是一个生命周期的起始.在java中,对象的初始化和对象的回收是怎样的呢? 在开发c++的时候,有构造器的概念.即对象的创建,首先默认调用构造器进行初始化.在java中也有“构造器”.ja ...
- (ios)ARC常用设置,部分文件编译设置ARC
1设置 整个项目是否支持ARC 选择No 不支持 YES 支持 2 设置部分文件是否支持ARC. 支持ARC的Flags -fobjc-arc 不支持的Flags -fno-objc-arc
- PE文件结构部分解析以及输入的定位
原文链接地址:http://www.cnblogs.com/shadow-lei/p/3554670.html PE文件定义 PE 文件("Portable executable" ...
- 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
一.access_token简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开 ...
- 为TFS配置跨平台的生成服务器Xplat (Ubuntu Linux)
1. 概述 从TFS 2015开始,微软开始支持跨平台的构建代理.你可以使用TFS的Xplat代理,方便的在基于IOS, Unix和Linux的服务器上搭建生成代理,实现构建.发布等功能.本文档已Ub ...
- runv containerd 流程分析
当runv需要启动一个容器的时候,首先需要启动containrd,作为该容器的daemon.因此,启动containerd的相关代码也是从runv/start.go开始.最终,启动containerd ...
- javascript判断回文数
"回文"是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如"我为人人,人人为我"等.在数学中也有这样一类数字有这样的特征,成为回文数(pa ...
- 一道题看bitset应用 --ZOJ 3642
题意:给n个文件,包括文件名和文件大小,然后给出k个关键词,查询包含该关键词的文件的大小总和.文件名为一些中括号括起的关键词的合集. 解法:可用bitset记录每一个关键词在哪些文件中出现,然后查询即 ...