徐高翔的个人网站

Pipenv的基本使用

2017-11-04

软硬件环境

  • ubuntu 18.04 64bit
  • pipenv
  • python3

pipenv

PipenvPython项目的依赖管理器, 是升级版的pip, 它能够有效地管理复杂的模块依赖关系, 项目地址 https://github.com/pypa/pipenv.

基本使用

使用pip3安装
1
pip3 install pipenv --user

pipenv_01

这条命令是在当前用户的目录下安装pipenv, 省略掉--user参数, 就会安装到系统目录中且需要 sudo 权限. 安装完毕查看下pipenv的安装路径

pipenv_02

项目实例

下面我们来创建一个空的项目, 看看pipenv的具体使用方法

1
2
3
mkdir pipenv_test
cd pipenv_test
pipenv install

pipenv_03

因为这是一个空的项目, pipenv会帮你创建一个全新的虚拟环境, 生成2个特殊的文件, PipfilePipfile.lock.

pipenv_04

我们再来看看pipenv帮我们创建的虚拟环境, python解释器存在于你的home 目录下. 而且, 每一个python项目, pipenv所创建的虚拟环境都是互相独立的, 能够极大的减少模块及对应版本的相互干扰.

pipenv_05

虚拟环境创建好了, 我们来安装个第三方的模块, 如dlib

1
pipenv install dlib

卸载命令是 pipenv uninstall dlib, 更新命令是 pipenv update dlib, 安装之后查看下Pipfile, 可以看到它记录了了已安装包的基本信息

pipenv_06

Pipfile.lock文件则详细记录了模块的版本好及对应的哈希值, 这个有点像常见的 requirements.txt

pipenv_08

命令 pipenv graph 可以查看更加详细的模块依赖关系

安装指定版本

还是以 dlib 模块为例, 之前默认安装的是19.15.0版本, 现在需要指定安装19.13.1, 相当于降版本, 可以执行命令

1
pipenv install dlib==19.13.1

然后查看下Pipfile.lock文件

pipenv_10

开发环境 vs 生产环境

通常有一些python包只在你的开发环境中需要, 比如单元测试包. 这时候就需要将开发环境和生产环境严格区分开来, 而pipenv正好提供了这个功能

1
pipenv install imutils --dev

如果不加--dev就默认都是生产环境, 安装完毕看看Pipfile.lock

pipenv_09

当别人clone了你的工程后, 如果只需要开发环境, 可以这样

1
pipenv install --dev
锁定lock

更新 Pipfile.lock 文件锁定当前环境的依赖关系

1
2
3
4
xugaoxiang@ubuntu:~/pipenv_test$ pipenv lock
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Updated Pipfile.lock (b3c305)!
项目的运行

写个简单的脚本test.py

1
2
3
import dlib

print(dlib.__version__)

运行命令是

1
pipenv run python3 test.py

pipenv_07

参考资料

  1. https://github.com/pypa/pipenv

推荐文章(由hexo文章推荐插件驱动)

使用支付宝打赏
使用微信打赏

请博主喝咖啡!