如何使用Buildout从源代码安装我的项目?

akn*_*ds1 7 python deployment buildout

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

编辑:

感谢M. Pieters,我能够做出决定.我发帖给我buildout.cfg参考:

[buildout]
develop = .
parts = fbt

[fbt]
recipe = z3c.recipe.scripts
eggs = BuildTools
Run Code Online (Sandbox Code Playgroud)

虽然我现在不需要它,但是对于开发人员的了解在未来肯定会派上用场.

Mar*_*ers 12

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

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

在开发存储库中

只需使用该develop选项.这会产生一个开发蛋,它与普通蛋相同,但没有版本检查,仅此而已.

您的buildout只需要列出当前目录(setup.py所在的目录)作为开发egg:

[buildout]
develop = .
Run Code Online (Sandbox Code Playgroud)

在不同的位置

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

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

[sources]
package.name = git url/to/package.name.git
Run Code Online (Sandbox Code Playgroud)

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

使用tarball下载

像github.com这样的地方也提供了一个下载包含存储库当前内容的tarball的选项.您可以使用它将该tarball作为egg源加载,并带有以下find-links选项:

[buildout]
find-links = http://github.com/yourname/package.name/tarball/version#egg=package.name-versionnumber
eggs = package.name
Run Code Online (Sandbox Code Playgroud)

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