Maven相当于python

Enn*_*oji 134 python deployment dependency-management

我是一个java开发人员/ python初学者,我缺少我的maven功能,特别是依赖管理和构建自动化(我的意思是你不构建,但是如何创建一个包用于部署?)

有没有python相当于实现这些功能?
注意:我使用python 2.x.

谢谢.

Dan*_*uev 66

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

下面是一个解释基础知识的教程:http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

简而言之,您将拥有setup.py文件,该文件具有依赖项和脚本编译/安装信息,您可以使用它构建egg,dist tarball,二进制tarball等.

  • 由于电子离职的Mark Pilgrim关闭了该站点,所以这里是[activestate]的镜像(http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html). (6认同)
  • 我建议将其更新为指向 [The Python Packaging User Guide](https://python-packaging-user-guide.readthedocs.io/en/latest/),因为它现在是权威指南。 (3认同)
  • Python 打包用户指南的 2021 年 1 月工作链接:https://packaging.python.org/ (2认同)

Tuu*_*nen 34

没有直接匹配.但是,你可以得到最接近的:

  • zc.buildout:它可以设置封闭环境,下载/处理依赖项,初始化脚本等.它还建立在插件(或"配方",因为他们称之为).我几年前使用它时处于测试阶段,可能它从那时起就已经发展了.有学习曲线,就像Maven一样,但它也是最强大的.

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

你可能知道Ant和shell脚本,所以你也可以检查这些Python工具:

  • FabricPaver:具有附加风格的命令行任务运行器.它们将您传统的命令行执行包装在python中,并允许以更强大的方式管理各种任务(任务依赖,解释输出,在远程服务器中运行命令等).基本上你没有用shell脚本做什么,但在python中,它不那么神秘.


小智 14

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

有一个用于依赖管理的插件(使用pip并介绍构建和运行时依赖关系),与maven不同,您可以使用单个命令运行整个构建生命周期.


ars*_*ars 8

对于部署,除了distutils/setuptoos之外,还要看一下pip包(使用下面的setuptools).它可以回滚失败的安装并卸载(easy_install/setuptools中缺少的东西).此外,您还可以通过需求文本文件指定依赖项.


Nin*_*Sun 6

使用virtualenv创建独立项目环境并使用pip/easy_install来管理依赖项是很好的.

  • 那很难过:) (7认同)