问题:相当于python的Maven
我是Java开发人员/ python初学者,但我缺少maven功能,特别是依赖管理和构建自动化(我是说您没有构建,但是如何创建用于部署的软件包?)
是否有等效的Python实现这些功能?
注意:我使用python 2.x
谢谢。
回答 0
Python使用distutils和setuptools进行依赖和打包。
以下是介绍基本知识的教程: http //docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html
简而言之,您将拥有setup.py文件,该文件包含依赖项和脚本编译/安装信息,并且您可以使用它来构建egg,dist tarball,binary tarball等。
回答 1
没有直接匹配。但是,您可以获得的最接近的:
- zc.buildout:它可以设置封闭环境,下载/处理依赖项,初始化脚本等。它还基于插件(或称其为“配方”)。几年前,当它处于beta阶段时,我就使用了它,也许它从那时起就已经发展了。与Maven一样,学习曲线也很丰富,但它也是最强大的。
其他产品是Maven / zc.buildout的子集:
- 设定工具:软件包创建/安装
- 点子:依赖管理
- Virtualenv + virtualenvwrapper:管理单独的python环境(Java不需要的东西)
您可能知道Ant和Shell脚本,因此您还可以检查以下Python工具:
回答 2
我想指出PyBuilder,它受maven的启发很大,但是使用python而不是XML进行配置,因此它实际上是可读的,恕我直言。
有一个用于依赖性管理的插件(在后台使用pip并区分构建和运行时依赖性),并且与maven一样,您可以使用单个命令在整个构建生命周期中运行。
回答 3
对于部署,除了distutils / setuptoos外,还请查看pip包(使用下面的setuptools)。它可以回滚失败的安装,也可以卸载(easy_install / setuptools中缺少的东西)。另外,您可以通过需求文本文件指定依赖关系。
回答 4
最好使用virtualenv创建独立的项目环境,并使用pip / easy_install来管理依赖项。