【问题标题】:Install python egg without launching buildout在不启动构建的情况下安装 python egg
【发布时间】:2013-11-04 18:34:40
【问题描述】:
我已经用 buildout 安装了我的 Django 应用,现在我想再添加一个鸡蛋。
但如果我只是在我的 buildout 中添加 egg 并启动 buildout,它会更新我所有的 egg,这是我不想要的,因为我不确定它是否适用于其他 egg 的升级版本。
我想知道是否有一种方法可以在我的应用程序中添加一个鸡蛋而不启动构建。我的应用在共享主机上,所以我无法访问所有内容。
【问题讨论】:
标签:
python
django
buildout
egg
【解决方案1】:
只需将您的新蛋添加到 buildout 中,然后使用 -N 运行 buildout:
-N
Run in non-newest mode. This is equivalent to the assignment
buildout:newest=false. With this setting, buildout will not seek
new distributions if installed distributions satisfy it's
requirements.
这意味着鸡蛋将升级。
你可能想要pin你的 egg 版本;添加一个 [versions] 部分,您可以在其中命名所有 egg 版本,并在 [buildout] 部分添加一个 versions = versions 条目。添加newest = false 和allow-picked-versions = false 以强制执行该策略并要求所有鸡蛋在版本部分中有一个条目:
[buildout]
# other options
versions = versions
allow-picked-versions = false
newest = false
[versions]
Django = 1.5.5
South = 0.8.2
# etc.
每次使用 allow-picked-versions = false 运行时,每次 buildout 遇到您尚未固定的鸡蛋时都会出错;继续在[versions] 部分添加鸡蛋,直到所有鸡蛋都被固定。