相当于python的Maven


146

我是Java开发人员/ python初学者,但我缺少maven功能,特别是依赖管理和构建自动化(我是说您没有构建,但是如何创建用于部署的软件包?)

是否有等效的Python实现这些功能?
注意:我使用python 2.x

谢谢。

Answers:


70

Python使用distutils和setuptools进行依赖和打包。

以下是介绍基本知识的教程: http //docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

简而言之,您将拥有setup.py文件,该文件包含依赖项和脚本编译/安装信息,并且您可以使用它来构建egg,dist tarball,binary tarball等。


6
由于亲身去世的马克· 皮尔格里姆( Mark Pilgrim)关闭了该地点,因此这里处于活动状态
jiggy 2012年

2
我建议对其进行更新,使其指向《 Python打包用户指南》,因为它现在是权威指南。
kojiro

38

没有直接匹配。但是,您可以获得的最接近的:

  • zc.buildout:它可以设置封闭环境,下载/处理依赖项,初始化脚本等。它还基于插件(或称其为“配方”)。几年前,当它处于beta阶段时,我就使用了它,也许它从那时起就已经发展了。与Maven一样,学习曲线也很丰富,但它也是最强大的。

其他产品是Maven / zc.buildout的子集:

您可能知道Ant和Shell脚本,因此您还可以检查以下Python工具:

  • 织物摊铺机:具有更多风味的命令行任务运行程序。它们将您的传统命令行执行包装在python中,并允许以更强大的方式管理各种任务(任务依赖关系,解释输出,在远程服务器中运行命令等)。基本上,您无法使用Shell脚本执行任何操作,但是在python中,它的神秘性要低得多。

14

我想指出PyBuilder,它受maven的启发很大,但是使用python而不是XML进行配置,因此它实际上是可读的,恕我直言。

有一个用于依赖性管理的插件(在后台使用pip并区分构建和运行时依赖性),并且与maven一样,您可以使用单个命令在整个构建生命周期中运行。


9

对于部署,除了distutils / setuptoos外,还请查看pip包(使用下面的setuptools)。它可以回滚失败的安装,也可以卸载(easy_install / setuptools中缺少的东西)。另外,您可以通过需求文本文件指定依赖关系。


6

最好使用virtualenv创建独立的项目环境,并使用pip / easy_install来管理依赖项。


7
真可悲:)
Gayan Weerakutti
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.