每门编程语言发展到现在,都需要一个工具,能够管理代码版本和控制生产环境和测试环境依赖一致的,这样减少不可代码上线之后不可控的问题出现。Php有Composer、Nodejs有npm、Golang有dep。实现方式其实大同小异,一个版本list的文件,其次是一个lock的文件,锁住并缓存当前的版本列表。Python则是Pipfile和Pipfile.lock两个文件,如下图:
Pipfile和Pipfile.lockPipenv是KennethReitz大神的作品,相当于virtualenv和pip的合体,且更加强大,有人可能对KennethReitz不太熟悉,但是你们对Python最流行的requests,Python的三方请求依赖包并不陌生吧,同样requests也是他的作品。
KennethReitz颜值巅峰说道KennethReitz大神,实在是太励志了,我这里就粗略的介绍一下,我们的重点是Pipenv,他以前很胖,苦于什么身边没有什么女生愿意靠近他,后来他开始健身,涉猎艺术,学习摄影,然后就变成了上面的大帅哥了。KennethReitz开发Pipenv的初衷是苦于Python跨平台的使用不太一致,而且有时候处理包之间的依赖总存在问题。
如何安装Pipenv呢?安装pip工具的同学可以执行pipinstallpipenv即可,这里就不介绍怎么安装pip了,因为网络上的教程实在是太多了。通常我们会苦于一个命令怎么使用,执行命令pipenv--help或者manpipenv我们可以查看pipenv的帮助手册,虽然是英文,其实一点也不影响阅读,无非就是check、install、update,掌握了这几个命令即可。
pipenv的帮助手册命令pipenvcheck是检查当前环境,然后生成pipfile和pipfile.lock两个文件,文件是通过hash算法将包的名称和版本,及依赖关系生成哈希值,可以保证包的完整性。php的