文章目录
学Python有段时间了,学的时候会想着拿它和Java对比。
- 在对比的时候,发现 Java 有很成熟的项目构建工具,有使用 xml 的 Maven,也有使用 groovy 的 Gradle,这样的构建工具能够自动处理项目的依赖,很是方便。
- 对于Python,在依赖管理方面,从一个初学者的角度看,嗯,只能说,贵圈真乱!(本文纯属个人观点,不喜勿喷) 好吧,让我们捋一捋。
- 在包管理方面,听说现在在役的包管理工具有 distutils、 setuptools、 distribute、 distlib、 pip,真让人眼花缭乱。幸运的是,现在貌似有setuptools和pip就已经足够了。
- 在项目依赖隔离方面,Python主要使用虚拟环境,而关于虚拟环境的模块,pyenv、 venv、 virtualenv、 virtualenvwrapper,也是叫人看到头皮发麻!
- 此外,很多 Python库使用了 C/C++语言,即使 Python 只是一个小版本的更新,对应的库也需要完全重新编译一次,也就是说不同小版本的 Python 的依赖也不一定能兼容。
- 还有就是版本问题(一直认为是个大坑!),很多时候,我们都希望能用一个工具来在两个版本间灵活地切换,并分别管理它们的依赖。
- 虽然存在众多不足,但可以看到的是,Python依然在往好的方向发展,比如目前的终极解决方案pipenv,其出现让Python的依赖管理逐渐优雅和简单。下面来总结一下我觉得比较有用的依赖管理工具,希望可以让和我一样的初学者