ubuntu上使用virtualenv建立多个python独立开发环境

来源:互联网 发布:图片识别 python 编辑:程序博客网 时间:2024/05/31 05:28

在学习Python编程的时候,ubuntu系统安装了Python3.5和python2.7两个版本。而我也打算同时学习python2和python3。这种情况下,每个应用各自需要拥有一套独立的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

1.安装 virtualenv:

pip install virtualenv 

2.创建独立的python环境:

mkdir myproject1cd myproject# 安装 python2.7 virtualenvvirtualenv --no-site-packages -p /usr/bin/python2.7 ~/myproject1/venvmkdir myproject2cd myproject2# 安装 python3.5 virtualenvvirtualenv --no-site-packages -p /usr/bin/python3.5 ~/myproject2/venv

3.激活virtualenv环境
参数–no-site-packages,表示安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的干净的Python运行环境。它也可以是参数–distribute 选项,它使virtualenv使用新的基于发行版的包管理系统而不是 setuptools 获得的包。

新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,可以用source进入该环境。

glucose@Y470:cd myproject1/venvglucose@Y470:~/myproject1/venv$ source bin/activate(venv) glucose@Y470:~/myproject1/venv$ which python/home/glucose/myproject1/venv/bin/python

当然,有的系统中只有python2或这python3,创建virtualenv环境要简单的多。

virtualenv --no-site-packages venv

virtualenv拷贝了Python可执行文件的副本,并创建一些有用的脚本和安装了项目需要的软件包,你可以在项目的整个生命周期中安装/升级/删除这些包。 它也修改了一些搜索路径,例如PYTHONPATH,以确保 当安装包时,它们被安装在当前活动的virtualenv里,而不是系统范围内的Python路径。 当import代码时,virtualenv将优先采取本环境中安装的包,而不是系统Python目录中安装的包。

4.退出当前的venv环境

(venv) glucose@Y470:~/myproject1/venv$ deactivate

virtualenv是如何创建“独立”的Python运行环境的原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。

参考:
[1]http://blog.csdn.net/kingppy/article/details/13080919
[2]http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108300322c61f256c74803b43bfd65c6f8d0d0000

0 0