virtualenv与pipenv简介

virtualenv

virtualenv用来为一个应用创建一套“独立”的Python运行环境。

安装virtualenv

1
pip install virtualenv

如果现新项目需要使用独立的python运行环境,具体步骤如下:
一、创建工程目录

1
2
mkdir myproject
cd myproject

二、使用virtualenv创建独立的Python运行环境(此处命名为pyenv)
“-p”指定使用的python版本环境

1
virtualenv -p python2/python3 pyenv

virtualenv已经成功创建了一个独立的Python运行环境,如果附上参数–no-site-packages,那么已经安装到系统Python环境中的所有第三方包都不会复制过来,这样我们可以得到了一个不带任何第三方包的“干净”的Python运行环境。

三、进入新环境同时安装依赖

1
2
source pyenv/bin/activate
pip/pip3 install package

在pyenv环境下,用pip安装的包都被安装到pyenv这个环境下,系统Python环境不受任何影响。pyenv环境是专门针对myproject这个应用创建的。

四、使用deactivate退出当前pyenv环境

1
deactivate

工作原理:

virtualenv把系统Python复制一份到virtualenv的环境,用命令source pyenv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。

pipenv

pipenv整合了virtualenv, pip, Pipfile,用于更方便地为项目建立虚拟环境并管理虚拟环境中的第三方模块。Pipfile是社区拟定的依赖管理文件,用于替代过于简陋的requirements.txt文件。

Pipfile文件是TOML格式而不是requirements.txt这样的纯文本。一个项目对应一个Pipfile,支持开发环境与正式环境区分。默认提供default和development区分。同时提供版本锁支持,存为Pipfile.lock。

安装pipenv

1
pip install pipenv

常用指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
pipenv --two/--three //指定python2/python3运行版本

pipenv -p /usr/bin/python2.7 //指定python版本

pipenv shell //激活虚拟环境

pipenv --venv //显示虚拟环境信息
/Users/fengzefeng/.local/share/virtualenvs/blockchain-hW9mDy3h

pipenv --py //显示Python解释器信息
/Users/fengzefeng/.local/share/virtualenvs/blockchain-hW9mDy3h/bin/python

pipenv install requests 安装相关插件并加入到Pipfile

pipenv install django==1.11 指定插件版本并加入到Pipfile

pipenv graph //查看目前安装的插件及其依赖

pipenv check //检查安全漏洞

pipenv uninstall --all //卸载全部包并从Pipfile中移除

pipenv lock 将安装插件更新到Pipfile.lock中

pipenv clean 删除所有未在Pipfile.lock中指定的模块

pipenv install安装列表是通过读取pipfile, pipfile.lock文件实现的,如果没有这两个文件就根据requirements.txt生成pipfile和pipfile.lock并读取。单独安装模块后会自动将新模块信息添加到pipfile中, 要同时更新pipfile.lock需要运行:pipenv lock。

pipenv新建的虚拟环境放在统一的目录下, 在某个目录下运行pipenv shell时pipenv会自动在虚拟环境目录下搜索以当前目录名称开头的虚拟环境目录, 如果没找到则判断为无虚拟环境.

Thank you for your support!