distutils,distutils2,pip和要求

2024-05-16 07:07:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正潜入打包Python应用程序的世界,并设法进入这种混乱的状态,因为我要处理的所有概念和选项,我的脑袋开始转起来。在

问题:

我需要完成什么?从git服务器上的源代码部署Python项目。部署工具应该获取并安装所有依赖项,其中大多数依赖项可以通过PIP获得,其中一个需要通过Git获取和安装。最终结果应该可以通过Pip安装,因此我可以做如下操作:

[~] git clone git://some/path/project.git
[~] pip install project/

目前我正试图让Distutils2做我想做的事,但看起来设置.py使用'generate setup'命令生成的命令不能与Pip一起播放。在

我想用Distutils2,因为它应该是所有未来的证明。但是所有这些工具的各种文档都是可怕的(准确的信息和过时的不准确的信息混合在一起),让人怀疑自己的理智。在

那我该怎么办?坚持住distutils和setup.py?或者我需要看看像Buildout这样的东西吗?在

这位好心的回答者能否说明一下我应该如何使用特定的工具(例如:使用Distutils2部署代码,使用PIP安装依赖项,对于git依赖项,编写一个脚本并将所有东西粘在一起做XYZ)。在

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

编辑2:重新编排问题的格式,使我的问题更清楚。在

这是我第四次尝试打破Python的打包和分发工具链。我不想让其他人帮我做我的工作,但是对于新手来说,几乎不可能破解一个特定工具应该做什么,它从哪里开始,另一个工具在哪里结束。尤其是因为工具之间的功能重叠。我不在硅谷,周围都是圣人,他们可以引导我进入秘密,公开的文件是没有用的。在

最终编辑: 虽然在开始这个问题时,我并没有真正考虑用Buildout替换virtualenv。但在做研究的时候,我意识到了一些我一直都知道的事情,只是没有完全明白。Python打包和部署自动化有很多种方法。还有很多工具可以帮助你完成任务。然而,虽然这些工具之间存在显著的功能重叠,但工具链一直在不断演变,迄今为止还没有明确的“标准最佳实践”。分销工具链的军备竞赛仍处于白热化阶段,尚未出现明显的胜利者。这可能会让我们这些傻瓜感到困惑,因为他们认为Python中的大多数东西都能正常工作。我所追求的(distutils/setuptools+pip+virtualenv以一种构建的方式或者甚至是与Buildout半集成)当然是可以修改的,但是它没有多大意义,不是因为它不可能,而是因为没有人这样做。如果你需要这种复杂程度,那么你就需要承诺。就我个人而言,我决定离开virtualenv(为了这个项目)而拥抱Buildout。在


Tags: pip工具项目pygit命令project编辑
2条回答

这并不难:安装Jenkins并使用pip的requirements.txt files来定义项目所需的包。之后,您可以在Jenkins中配置一个构建来执行各种任务,包括安装所需的包。它可以从您的存储库中获取源代码并安装并构建整个项目。

看一下buildout;再加上一个名为mr.developer的构建插件,您可以将一个部署系统组合起来,完成您所要求的所有任务。

web上有很多关于构建配置的示例和演示,下面是一些可以帮助您入门的示例和演示:

相关问题 更多 >