Python的Maven等效工具
我是一名Java开发者,刚开始学习Python,但我觉得在Python里缺少一些Maven的功能,特别是依赖管理和构建自动化(我的意思是,你不需要自己去构建,但怎么才能创建一个可以部署的包呢?)
有没有什么Python的工具可以实现这些功能呢?
注意:我使用的是Python 2.x
谢谢。
5 个回答
17
我想提一下 PyBuilder,这个工具受到了maven的很大启发,但它用的是Python来配置,而不是用XML,所以我觉得它其实更容易读懂。
它有一个插件可以管理依赖关系(在后台使用pip,并且区分了构建时和运行时的依赖),而且和maven类似,你只需要一个命令就能完成整个构建过程。
43
没有完全匹配的工具。不过,以下这些是最接近的选择:
- zc.buildout:这个工具可以设置封闭的环境,下载和管理依赖关系,初始化脚本等等。它还支持插件(他们称之为“食谱”)。我几年前用过,当时还在测试阶段,可能现在已经发展得更好了。使用起来有一定的学习曲线,跟Maven类似,但它也是最强大的。
其他工具可以看作是Maven或zc.buildout的简化版:
- Setuptools:用于创建和安装包
- Pip:用于管理依赖关系
- Virtualenv + virtualenvwrapper:用于管理不同的Python环境(这是Java不需要的功能)
你可能知道Ant和shell脚本,所以你也可以看看这些Python工具:
82
Python使用distutils和setuptools来处理依赖关系和打包。
这里有一个教程,讲解了基础知识:http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html
简单来说,你会有一个setup.py文件,这个文件里包含了依赖关系和脚本的编译/安装信息。你可以用它来创建各种包,比如egg文件、tar包等。