7

我想使用Buildout将我的基于Distribute的项目及其依赖项安装到一个隔离的环境中。我的项目应该直接从源代码树(本地 Git 存储库)安装,并且没有向 PyPI 注册。我该如何做到这一点?

编辑:

多亏了 M. Pieters,我才知道该怎么做。我发布我buildout.cfg的供参考:

[buildout]
develop = .
parts = fbt

[fbt]
recipe = z3c.recipe.scripts
eggs = BuildTools

虽然我现在不需要,但是mr.developer的知识以后肯定会派上用场的。

4

2 回答 2

12

您有 3 个选项,具体取决于您希望构建配置的位置以及检查 git 存储库的选项。

请注意,就 Python 而言,生成的鸡蛋是完全相同的。开发鸡蛋和“普通”鸡蛋之间的唯一区别是,开发鸡蛋会覆盖其他地方为该鸡蛋设置的任何版本要求。无论在其他地方发现什么其他版本的鸡蛋,它都会被使用。

在开发存储库中

只需使用该develop选项。这将创建一个开发蛋,它与普通蛋一样,但没有版本检查,仅此而已。

您的构建只需将当前目录(setup.py 所在的目录)列为开发蛋:

[buildout]
develop = .

在不同的位置

您需要能够访问 git 存储库以创建新的结帐。使用mr.developer拉入您的 git 存储库并自动将其标记为开发蛋:

[buildout]
extensions = mr.developer
auto-checkout = package.name

[sources]
package.name = git url/to/package.name.git

通过此设置,mr.developer 将自动将 git 存储库检出到src/子目录并将其添加到 buildoutdevelop选项。

使用压缩包下载

像 github.com 这样的地方还提供了一个选项来下载包含存储库当前内容的 tarball。您可以使用以下选项将该 tarball 作为鸡蛋源加载find-links

[buildout]
find-links = http://github.com/yourname/package.name/tarball/version#egg=package.name-versionnumber
eggs = package.name

然后,Buildout 将使用该特定find-links条目来查找彩蛋,前提是它无法在其他地方找到彩蛋。

于 2011-04-18T16:26:07.690 回答
3

通过使用 zc.buildout 的开发指令或使用 mr.developer buildout 扩展,您可以轻松地将 Buildout 与从存储库签出一起使用,您可以在其中定义要直接从给定存储库 URL 签出的包(支持 git、svn 和其他版本控制系统)。

http://pypi.python.org/pypi/mr.developer

于 2011-04-18T14:10:37.087 回答