python 虚拟环境virtualenv
在开发Python应用程序的时候,经常会因为各个应用程序使用的环境或包不同,而导致应用程序无法运行,亦或者因为没有管理员权限无法安装相应的包。
此时就需要使用Python的强大虚拟机工具virtualenv了,为每个应用创建一套自己的Python运行环境。
安装
首先,我们用pip安装virtualenv:
1 | $ pip3 install virtualenv |
使用
第一步,创建目录:
1 | mkdir myproject |
第二步,创建一个独立的Python运行环境,命名为venv:
1 | $ virtualenv --no-site-packages venv |
命令virtualenv就可以创建一个独立的Python运行环境,我们还加上了参数–no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。
新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,可以用source进入该环境:
第三部,调用虚拟环境
1 | source venv/bin/activate |
注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。
第四步,安装各种包
下面正常安装各种第三方包,并运行python命令:
1 | (venv)$ pip install jinja2 |
在venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。也就是说,venv环境是专门针对myproject这个应用创建的。
第五步,退出虚拟环境
退出当前的venv环境,使用deactivate命令:
1 | (venv)$ deactivate |
此时就回到了正常的环境,现在pip或python均是在系统Python环境下执行。
指定python版本
如果存在多个python解释器,可以选择指定一个Python解释器(比如python2.7
),没有指定则由系统默认的解释器来搭建,比如下面的命令为使用python2.7来搭建。
1 | $ virtualenv -p /usr/bin/python2.7 my_project_env |