distutils,distutils2,pip和要求

Jan*_*par 8 python distutils pip buildout

我正在潜入包装Python应用程序的世界,并设法进入这种混乱状态,由于我应该处理的所有概念和选项,我的头开始旋转.

题:

我需要完成什么?从位于git服务器上的源部署我的Python项目.部署工具应该获取并安装所有依赖项,其中大部分都可以通过PIP获得,一个需要通过Git获取和安装.最终结果应该可以通过Pip安装,所以我可以做一些事情:

[~] git clone git://some/path/project.git
[~] pip install project/
Run Code Online (Sandbox Code Playgroud)

上下文: 目前我正在尝试让Distutils2做我想做的事,但似乎使用'generate-setup'命令创建的setup.py不能与Pip一起使用.

我想使用Distutils2,因为它应该是所有人的未来证明.但是关于所有工具的各种文档都是可怕的(准确的信息与过时和不准确的信息混合在一起),这会让一个人质疑他的理智.

所以我该怎么做?坚持distutils和setup.py?或者我需要看一下像Buildout这样的东西?

请问那些善意的回答者请说明我应该使用特定工具做什么(例如:使用Distutils2部署代码,使用PIP安装依赖项,git依赖项编写脚本并将所有内容粘合在一起做XYZ).

编辑:我使用的是Distutils2 1.0a4,它似乎与文档不兼容.

编辑2:重新格式化问题,使我的问题更清楚.

Edit3:这是我打破Python打包和分发工具链的第四次尝试.我不是想让其他人为我做我的工作,但是对于一个新手而言,几乎不可能破解特定工具应该做什么,它开始的地方和另一个结束的地方.特别是因为工具之间的功能重叠.我不是位于硅谷周围的圣人,他们可以让我知道秘密,公开的文件是没有用的.

最终编辑: 虽然在开始这个问题时我并没有考虑用Buildout替换virtualenv.但在做研究的过程中,我意识到了我一直都知道的事情,但我并没有完全清楚地告诉我.有关Python打包和部署自动化的方法有很多种.还有许多工具可以帮助您完成工作.然而,虽然这些工具之间存在显着的功能重叠,但工具链却在不断发展,到目前为止还没有明确的"标准最佳实践".分配工具链军备竞赛仍处于全面激烈状态,尚未出现明显的胜利者.这可能会让我们感到困惑,他们希望Python中的大部分内容都能正常工作.我所追求的(distutils/setuptools + pip + virtualenv以Buildout方式甚至与Buildout半集成)当然是可行的,但它没有多大意义,不是因为它不可能 - 而是因为没有人这样做.如果你需要这种复杂程度,那么你需要提交.就个人而言,我决定将virtualenv抛弃(对于这个项目)并拥抱Buildout.

Mar*_*ers 7

看一下buildout ; 与一个名为mr.developer的buildout插件一起,您可以将一个部署系统组合在一起,完成您要求的所有操作.

有关网络上的buildout配置的大量示例和演示文稿,以下是一些可以帮助您入门的示例和演示文稿: