工作生活

Python依赖管理那点事

2019-06-30  本文已影响0人  会走路的胃袋

学Python有段时间了,学的时候会想着拿它和Java对比。

pip

之前我曾写过关于pip使用的,pip的基本使用。但如果在做项目时,只会使用pip intall来管理包,用久了会发现各个项目的模块杂揉到一起,很是混乱,还可能会导致各种奇怪的错误,因为pip安装好的模块全都在一个全局的模块库中,无法实现项目间的依赖隔离。显然,pip在包管理方面很好用,但在要隔离项目间的依赖,还需要使用别的工具,比如virtualenv

virtualenv

在使用virtualenv处理项目依赖时,我们通常会使用virtualenv创建一个虚拟环境,再创建一个依赖包列表requirements.txt,然后他们可以使用 pip进行安装。这种方法一般都会工作正常,但有时它会表现出一些怪异行为。下面是其使用时的一些缺陷。

缺点

Pipenv

不得不说,在项目包管理方面,Python确实存在不少的坑。直到Pipenv的出现,Python的依赖管理才逐渐变得优雅起来。Pipenv是官方推荐的的python包管理工具,它旨在将所有包管理工具(如bundler, composer, npm, cargo, yarn等)的优点集中应用于python领域。

下面是其主要优势:

  1. 集成了pip,virtualenv两者的功能,且完善了两者的一些缺陷。

  2. 支持Python2 和 Python3,在各个平台的命令都是一样的。

  3. 过去用virtualenv管理requirements.txt文件可能会有问题,Pipenv使用Pipfile和Pipfile.lock,后者存放将包的依赖关系,查看依赖关系是十分方便。

  4. 各个地方使用了哈希校验,无论安装还是卸载包都十分安全,且会自动公开安全漏洞。

  5. 通过加载.env文件简化开发工作流程。

总结

最后, 个人建议,保持简单,拥抱pipenv吧! 关于Pipenv的使用,可以看一下我的另一篇文章, Pipenv使用入门

上一篇 下一篇

猜你喜欢

热点阅读