我想使用Buildout将基于Distribute的项目及其依赖项安装到隔离环境中。我的项目应该直接从源代码树(本地Git存储库)安装,而不是在PyPI中注册。我该如何做到这一点?
修改
感谢M. Pieters,我能够做出决定。我发布了buildout.cfg
以供参考:
[buildout]
develop = .
parts = fbt
[fbt]
recipe = z3c.recipe.scripts
eggs = BuildTools
虽然我现在不需要它,但mr.developer的知识肯定会在将来派上用场。
答案 0 :(得分:12)
您有3个选项,具体取决于您希望构建生成配置的位置以及检查git存储库的选项。
请注意,就Python而言,产生的蛋是完全相同的。开发蛋和“正常”蛋之间的唯一区别是,开发蛋超出了该蛋其他地方的任何版本要求;无论在其他地方找到其他版本的鸡蛋,它都会被使用。
只需使用develop
选项即可。这会产生一个开发蛋,它与普通蛋相同,但没有版本检查,仅此而已。
您的buildout只需要列出当前目录(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/
子目录,并将其添加到buildout develop
选项。
像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
条目查找鸡蛋,前提是它无法在其他地方找到鸡蛋。
答案 1 :(得分:3)
通过使用zc.buildout的 develop 指令或使用mr.developer buildout扩展,您可以轻松地将Buildout与来自存储库的签出结合使用,您可以在其中定义要直接从给定存储库签出的包URL(支持git,svn和其他版本控制系统)。
见