相当于python的Maven
我是一名java开发人员/ python初学者,我错过了我的mavenfunction,特别是依赖pipe理和构build自动化(我的意思是你不build立,但如何创build一个包的部署?)
有没有相当于实现这些function的python?
注意:我使用python 2.x
谢谢。
Python使用distutils和setuptools进行依赖和打包。
下面是一个解释基础的教程: http : //docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html
简而言之,您将拥有setup.py文件,它具有相关性和脚本编译/安装信息,您可以使用它创buildegg,dist tarball,二进制tarball等。
没有直接的匹配。 但是,最接近你可以得到:
- zc.buildout :它可以设置封闭的环境,下载/处理依赖项,初始化脚本等。它也build立在插件(或称为“食谱”,因为他们称之为)。 几年前我曾经在beta阶段使用过它,可能从那时起就有了进化。 有和Maven一样的学习曲线,但也是最强大的。
其他产品是Maven / zc.buildout的子集:
- Setuptools :软件包的创build/安装
- 点子 :依赖pipe理
- Virtualenv + virtualenvwrapper :pipe理单独的python环境(Java不需要的东西)
你可能知道Ant和shell脚本,所以你可以检查这些Python工具:
- 结构或摊铺机 :具有添加风味的命令行任务运行程序。 它们将传统的命令行执行封装在Python中,并允许以更强大的方式pipe理各种任务(任务依赖关系,解释输出,在远程服务器中运行命令等)。 基本上没有什么你不能使用shell脚本,但是在python中,它不那么神秘。
我想指出PyBuilder ,它受到了Maven的巨大启发,但是使用python而不是XML进行configuration,所以它实际上是可读的,恕我直言。
有一个用于依赖pipe理的插件(在底层使用pip,区分构build和运行时依赖),和maven不同,你可以用一个命令运行完整的构build生命周期。
对于部署,除了distutils / setuptoos之外,还要看看pip包 (使用下面的setuptools)。 它可以回滚失败的安装,也可以卸载(easy_install / setuptools中缺less的东西)。 另外,您可以通过需求文本文件指定相关性。
使用virtualenv创build独立的项目环境并使用pip / easy_installpipe理依赖关系是很好的。