Linux系统中Python virtualenv的安装和使用

virtualenv简介

在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?

这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

virtualenv安装

[root@localhost ~]# pip install virtualenv
Collecting virtualenv
  Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB)
    100% |████████████████████████████████| 1.8MB 67kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-15.1.0

virtualenv运行使用

1. 创建虚拟化运行环境

[root@localhost ~]# virtualenv venv
New python executable in /root/venv/bin/python
Installing setuptools, pip, wheel...done.
[root@localhost ~]# ll
total 18312
-rw-------.  1 root root     3335 Oct 28  2015 anaconda-ks.cfg
-rw-r--r--.  1 root root    39343 Oct 28  2015 install.log
-rw-r--r--.  1 root root     9154 Oct 28  2015 install.log.syslog
-rw-r--r--.  1 root root  1591240 Aug 28 20:17 master
drwxr-xr-x. 18 1000 1000     4096 Aug 28 07:49 Python-2.7.13
-rw-r--r--.  1 root root 17076672 Dec 17  2016 Python-2.7.13.tgz
drwxr-xr-x.  9 root root     4096 Aug 28 20:24 ssdb-master
drwxr-xr-x.  5 root root     4096 Aug 29 00:06 venv

运行virtualenv venv命令之后,会在当前目录下创建一个名为venv的文件目录,该目录文件就是新创建的python虚拟运行环境,在创建过程中,他会将之前在真实python运行环境下安装的库复制到当前创建的新虚拟环境中

创建干净的Python虚拟环境

如果希望创建一个空的python虚拟环境,可以使用如下命令:

virtualenv --no-site-packages venv

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

为新创建的Python环境指明Python解释器

在运行virtualenv venv命令时,同样没有指明希望运行在虚拟环境中的python版本信息,默认使用了机器中安装完成的python2.7.13版本。如果希望在创建环境时,指明一个python解释器来创建,使用如下命令:

virtualenv -p /usr/bin/python2.7 venv

2. 启动Python虚拟环境

2.1 激活虚拟化环境命令

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

source venv/bin/activate

注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。在该虚拟环境下,可以正常安装各种第三方包,并运行python命令,这里尝试在虚拟环境下安装Flask:

[root@localhost ~]# source venv/bin/activate
(venv) [root@localhost ~]# pip install flask
Collecting flask
  Downloading Flask-0.12.2-py2.py3-none-any.whl (83kB)
    100% |████████████████████████████████| 92kB 259kB/s
Collecting itsdangerous>=0.21 (from flask)
  Downloading itsdangerous-0.24.tar.gz (46kB)
    100% |████████████████████████████████| 51kB 1.5MB/s
Collecting Werkzeug>=0.7 (from flask)
  Downloading Werkzeug-0.12.2-py2.py3-none-any.whl (312kB)
    100% |████████████████████████████████| 317kB 559kB/s
Collecting Jinja2>=2.4 (from flask)
  Downloading Jinja2-2.9.6-py2.py3-none-any.whl (340kB)
    100% |████████████████████████████████| 348kB 871kB/s
Collecting click>=2.0 (from flask)
  Downloading click-6.7-py2.py3-none-any.whl (71kB)
    100% |████████████████████████████████| 71kB 1.0MB/s
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->flask)
  Downloading MarkupSafe-1.0.tar.gz
Building wheels for collected packages: itsdangerous, MarkupSafe
  Running setup.py bdist_wheel for itsdangerous ... done
  Stored in directory: /root/.cache/pip/wheels/fc/a8/66/24d655233c757e178d45dea2de22a04c6d92766abfb741129a
  Running setup.py bdist_wheel for MarkupSafe ... done
  Stored in directory: /root/.cache/pip/wheels/88/a7/30/e39a54a87bcbe25308fa3ca64e8ddc75d9b3e5afa21ee32d57
Successfully built itsdangerous MarkupSafe
Installing collected packages: itsdangerous, Werkzeug, MarkupSafe, Jinja2, click, flask
Successfully installed Jinja2-2.9.6 MarkupSafe-1.0 Werkzeug-0.12.2 click-6.7 flask-0.12.2 itsdangerous-0.24

安装成功。注意:在venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。

2.2 退出当前系统环境

在虚拟环境中,输入:

deactivate

即可退出当前的venv虚拟化环境。

资料参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值