用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)[email protected] 变成了 (py3env)[email protected] ,最前面多了这个虚拟环境的名字。

其他一些常用命令:

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. 参考链接

两篇比较好的博文:

http://www.oschina.net/question/54100_26395

http://liuzhijun.iteye.com/blog/1872241

postactivate的用法:

http://stackoverflow.com/a/11134336

官方文档:

https://virtualenvwrapper.readthedocs.org/en/latest/

时间: 2024-10-29 17:16:47

用virtualenv管理python3运行环境的相关文章

Ubuntu部署python3.5的开发和运行环境

Ubuntu部署python3.5的开发和运行环境 概述 下载 解压 安装 建立虚拟环境 安装pip 常见问题-HTTPS错误提示 Ubuntu部署python3.5的开发和运行环境 概述 由于最近项目全部由python2.x转向 python3.x(使用目前最新的 python3.5.1) ,之前的云主机的的默认python版本都面临升级,故进行了升级后将相应的步骤记录下来,作为学习笔记吧. 服务器运行环境: ubuntu 14 LTS Server 本安装方式具有如下特点: 不影响已经有的p

Deepin部署python3.5的开发和运行环境

1.概述 由于最近项目全部由python2.x转向 python3.x(使用目前最新的 python3.5.1) ,之前的云主机的的默认python版本都面临升级,故进行了升级后将相应的步骤记录下来: 服务器运行环境:Deepin 15.41: 本安装方式具有如下特点:不影响已经有的python环境.增量式安装.完全隔离的沙盒环境.甚至可以不需要root权限: 2.下载 在python官网下载指定平台下的python3.5的环境:https://www.python.org/downloads/

deepin系统下部署Python3.5的开发及运行环境

1 概述 本人小白一枚,由于最近要学习python接口自动化测试,所以记录一下相关学习经过及经验,希望对跟我一样小白的朋友可以有所帮助. 2 下载 在python官网下载指定平台下的python3.5的环境 wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz 例如,下载下载的文件为Python-3.5.1.tgz 3 解压 然后进行解压: tar -xvzf Python-3.5.1.tgz 生成目录Python-3.5.1

Python学习笔记(四十三)virtualenv (创建一套“隔离”的Python运行环境)

摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108300322c61f256c74803b43bfd65c6f8d0d0000 在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4.所有第三方的包都会被pip安装到Python3的site-packages目录下.(Linux) 如果我们要同时开发多个应用程序,那这些应用程

使用virtualenv为应用提供了隔离的Python运行环境

在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4.所有第三方的包都会被pip安装到Python3的site-packages目录下. 如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3.如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办? 这种情况下,每个应用可能需要各自拥有一套"独立"的Python运行环境.virtualenv就是用来为一个应用创建一套"隔离"

centos7安装python3x,使用virtualenv创建python3的隔离环境

centos7默认python程序是2x,如果要使用3x可以使用EPEL仓库安装.同时为了使用隔离的python环境可以安装virtualenv. 1.启用EPEL sudo yum install epel-release 2. 安装python3 sudo yum install python34 3.给python2安装pip工具 sudo yum install python-pip 4.升级python2的pip工具 sudo pip install -U pip 5.安装virtua

国内首发讲解:RIDE 可以在 linux+python3 的环境中运行啦!

[引言] RIDE 是robotframework自动化测试框架的一个编辑工具.之前这个工具,只能在windows系统+python2的环境中运行. 就在2020年1月20日,官方发布了1.7.4.1版本,已经可以在linux+python3的环境中运行了. 关注robotframework的同学,可以看下这篇文章,在国内应该还鲜有人介绍. RIDE1.7.4.1版本,是一个python自动化测试中一个跨越式版本更新. 1 RIDE是什么? RIDE是什么?它是用来干什么的? 对于一些吃瓜群众来

构建python的运行环境

用virtualenv创建python虚拟运行环境 在编写python程序时,通常会用到一些第三方的库文件.并且不同的项目通常会调用不同的第三方库.如果所有的项目都混在一起,这显然不太方便进行管理.virtualenv是一个虚拟环境管理工具. $ sudo pip install virtualenv$ virtualenv project1$ source ./project1/bin/activate(project1)[email protected]:~$ 使用venv创建python虚

linux环境安装python3的环境(包含setuptools,pip)

date 20191125 周一在linux 6.5上安装 python3.7.3 的环境因为我们的mac上的环境为:(base) majihuideMacBook-Pro:~ majihui$ python -VPython 3.7.3 接下来,在我的本地测试环境上 安装 python3.7.3[[email protected] ~]# cat /etc/redhat-release CentOS release 6.5 (Final)王金灿给我的 python 的 编译环境 linux上