2.2 使用Pipenv定制Python环境

Python从1991年首次发布以来,应用非常广泛,更新迭代非常快。目前在计算机行业中使用最多的是Python2和Python3,但令人沮丧的是,它们并不能完全兼容。另外,开源的Python包成千上万,背后数以万计的Python开发人员在不断地提交更新和迭代,这也导致了同一Python包之间具有差异,这正是Python令人诟病的一点——兼容与环境。以scikit-learn[1]为例,pypi.org显示,scikit-learn于2016年9月发布了0.18版本,2017年8月发布0.19版本,2018年9月发布0.20版本,2019年发布了0.21、0.22版本,2020年发布0.23版本。

Python工程师(此处不仅指机器学习开发人员)在使用Python开发时,将面临Python环境不一致的问题:开发环境和线上环境不一致,即程序在本地测试通过后,上线后很有可能由于环境的差异而出现Bug。这里的不一致除了以上的版本差异外,还涉及平台的差异。为了解决这个问题,Python社区推荐大家使用虚拟环境,并提供了相关的工具。在虚拟环境下,每个环境与其他Python虚拟环境隔离,互不影响,常用的工具有virtualenv(virtualenvwrapper)、pyvenv、conda等。本节要介绍的是近两年非常流行的工具Pipenv,笔者根据个人经验推荐使用Pipenv制作Python的虚拟环境。

[1] https://pypi.org/project/scikit-learn/