【Python学习笔记】-虚拟环境virtualenv

在开发python应用程序的时候,系统安装的python3只有一个版本:3.4。所有的第三方的包都回被pip安装到python3的site-packages目录下。

如果我们要要同时开发多个应用程序,那这些应用都共用一个python,就是安装在系统的python3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?

这种情况下,每个应用需要各自拥有一套“独立”的python运行环境。有两个常用工具用于创建python“独立”环境:

venv is available by default      in Python 3.3 and later, and installs pip and setuptools into created      virtual environments in Python 3.4 and later.

virtualenv needs to be      installed separately, but supports Python 2.7+ and Python 3.3+, and pip,      setuptools and wheel are always installed into created virtual      environments by default (regardless of Python version). 

virtualenv

https://virtualenv.readthedocs.io/en/latest/

virtualenv is a tool to create isolated Python environments.

创建一个拥有自己安装目录的环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库

安装Virtualenv

$ pip install virtualenv

创建virtualenv

假定我们要开发一个新的项目,需要一套独立的python运行环境,可以这么做:

- 在项目目录下,创建一个独立的python运行环境,命名为 venv

virtualenv venv #创建一个名为ENV的目录, 并且安装了ENV/bin/python,创建了lib,include,bin目录,安装了pip

lib,所有安装的python库都会放在这个目录中的lib/pythonx.x/site-packages/下

bin,bin/python是在当前环境是使用的python解释器

如果在命令行中运行virtualenv --system-site-packages ENV, 会继承/usr/lib/python2.7/site-packages下的所有库, 最新版本virtualenv把访问全局site-packages作为默认行为

default behavior.

virtualenv --no-site-packages venv

 

加上了参数--no-site-packages,这样,已经安装到系统python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的pyhton运行环境。

 可以使用-p PYTHON_EXE选项在创建虚拟环境的时候指定python版本

 

#创建python2.7虚拟环境
virtualenv -p /usr/bin/python2.7 ENV2.7 

#创建python3.4虚拟环境
virtualenv -p /usr/local/bin/python3.4 ENV3.4

激活virtualenv

新建的python环境被放到项目录下的venv目录,有了 venv 这个python环境,就可以用source进入该环境:

source ./venv/bin/activate

或者是

source ./venv/Scripts/activate

注意查看activate命令被放在了哪个目录下。

 

执行上面的命令后,可以看懂命令指示符变了,有个 (venv) 前缀,表示当前环境是一个名为 venvpython环境,下面可以正常安装各种第三方包,并运行python命令。

venv 环境下,用 pip 安装的包都在安装到了 venv 这个环境下,系统python环境不受任何影响,也就是说, venv环境是专门针对当前项目创建的。

关闭virtualenv

退出venv 环境,使用 deactivate 命令:deactivate 

viratualenv是如何创建“独立”的python运行环境呢?其实就是把系统python复制一份到virtualenv的环境,用命令 source 进入一个virutalenv环境时,virtualenv会修改相关环节变量,让命令pythonpip均指向当前的virtualenv环境。 

venv

venv不用安装,不过需要python3.3以上。创建一个独立的python运行环境,命名为venv

python3 -m venv ./venv

上面的命令会在当前目录下创建一个名为venv的python环境中。进入和退出该环境的方式和virtualenv一致。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxwsj.html