我是一个java开发人员/ python初学者,我缺少我的maven功能,特别是依赖管理和构建自动化(我的意思是你不构建,但是如何创建一个包用于部署?)
有没有python相当于实现这些功能?
注意:我使用python 2.x.
谢谢.
Python使用distutils和setuptools进行依赖和打包.
下面是一个解释基础知识的教程:http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html
简而言之,您将拥有setup.py文件,该文件具有依赖项和脚本编译/安装信息,您可以使用它构建egg,dist tarball,二进制tarball等.
没有直接匹配.但是,你可以得到最接近的:
zc.buildout:它可以设置封闭环境,下载/处理依赖项,初始化脚本等.它还建立在插件(或"配方",因为他们称之为).我几年前使用它时处于测试阶段,可能它从那时起就已经发展了.有学习曲线,就像Maven一样,但它也是最强大的.
其他产品是Maven/zc.buildout的子集:
Setuptools:包创建/安装
Pip:依赖管理
Virtualenv + virtualenvwrapper:管理单独的python环境(Java不需要的东西)
你可能知道Ant和shell脚本,所以你也可以检查这些Python工具:
Fabric或Paver:具有附加风格的命令行任务运行器.它们将您传统的命令行执行包装在python中,并允许以更强大的方式管理各种任务(任务依赖,解释输出,在远程服务器中运行命令等).基本上你没有用shell脚本做什么,但在python中,它不那么神秘.
我想指出PyBuilder受maven的启发,但使用python而不是XML进行配置,所以它实际上是可读的,恕我直言.
有一个用于依赖管理的插件(使用pip并介绍构建和运行时依赖关系),与maven不同,您可以使用单个命令运行整个构建生命周期.
对于部署,除了distutils/setuptoos之外,还要看一下pip包(使用下面的setuptools).它可以回滚失败的安装并卸载(easy_install/setuptools中缺少的东西).此外,您还可以通过需求文本文件指定依赖项.