很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center .
9年前关闭。
我正在潜入打包 Python 应用程序的世界,并设法进入这种困惑状态,由于我应该处理的所有概念和选项,我的头开始旋转。
问题:
我需要完成什么? 从位于 git 服务器上的源部署我的 Python 项目。部署工具应该获取并安装所有依赖项,其中大部分依赖项可以通过 PIP 获得,需要通过 Git 获取和安装。最终结果应该可以通过 Pip 安装,所以我可以做一些事情:
[~] git clone git://some/path/project.git
[~] pip install project/
上下文:
目前我正试图让 Distutils2 做我想做的事,但似乎使用 'generate-setup' 命令制作的 setup.py 不能与 Pip 一起使用。
我想使用 Distutils2,因为它应该是所有 future 的最佳证明。但是关于所有工具的各种文档都非常糟糕(准确的信息与过时和不准确的信息混合在一起),让人怀疑他的理智。
所以我该怎么做?坚持使用 distutils 和 setup.py?或者我需要看看像 Buildout 这样的东西吗?
好心的回答者能否列出我应该使用特定工具做什么(例如:使用 Distutils2 部署您的代码,使用 PIP 安装依赖项,对于 git 依赖项编写脚本并将所有内容粘合在一起做 XYZ)。
编辑:我使用的是 Distutils2 1.0a4,它似乎与文档不兼容。
Edit2:重新格式化问题以更清楚地说明我的问题的真正含义。
Edit3:这是我第四次尝试打破 Python 的打包和分发工具链。我并不是想让其他人为我做我的工作,但是对于一个新手来说,破解一个特定工具应该做什么,它从哪里开始,另一个在哪里结束几乎是不可能的。特别是因为工具之间的功能重叠。我不在硅谷,周围都是圣人,他们可以让我了解 secret ,公开的文件也没有用。
最终编辑:
虽然我在开始这个问题时并没有真正考虑用 Buildout 替换 virtualenv 。但是在进行研究时,我意识到了一些我一直都知道的事情,但我并没有完全清楚。 Python 打包和部署自动化有很多方法。还有许多工具可以帮助您完成工作。然而,虽然工具之间存在显着的功能重叠,但工具链一直在发展,到目前为止还没有明确的“标准最佳实践”。分发工具链军备竞赛仍在进行中,尚未出现明确的胜利者。这可能会让我们这些菜鸟感到困惑,因为他们期望 Python 中的大多数东西都能正常工作。我所追求的(distutils/setuptools + pip + virtualenv 以 Buildout 方式,甚至与 Buildout 半集成)当然是可行的,但它只是没有多大意义,不是因为它不可能 - 而是因为没有人这样做。如果您需要这种复杂程度,那么您需要做出 promise 。就我个人而言,我决定放弃 virtualenv(对于这个项目)并接受 Buildout。
最佳答案
看看buildout ;连同一个名为 mr.developer 的构建插件您可以组合一个部署系统来满足您的所有要求。
网络上有很多关于构建配置的示例和演示,这里有一些可以帮助您入门:
包括演示文稿的 YouTube 视频,以便您可以一起收听。
包括有关 buildout 和 setup.py 如何相互作用的详细信息。
这将构建一个 venus RSS aggregator使用配置、样式、apache 配置和 cronjobs,根据需要拉入鸡蛋。
复杂的构建,包含开发 Plone CMS 所需的所有资源;这是一个复杂的野兽,但它展示了你可以用
mr.developer
做什么. 关于python - distutils、distutils2、pip 和要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10976534/