Укажите приоритет в buildout.cfg для получения яиц - PullRequest
1 голос
/ 02 февраля 2011

Мне было интересно, если есть способ указать, откуда яйца должны быть получены в первую очередь, прежде чем смотреть на pypi.python.org/

Например:

[buildout]
find-links:
    /home/eggs/

eggs =
    foo
    bar

Если на pypi есть пакет foo или bar с номером версии выше моего пакета с именем foo, расположенного в /home/eggs/, buildout попытается загрузить пакет из pypi. Мои foo и pypi foo совершенно разные, это проблема.

Я не смог найти способ использовать пространства имен или что-то подобное, поэтому я думаю, что должен быть способ заставить buildout использовать одни пакеты, а не другие.

Есть идеи, как это решить?

Ура, Martin

1 Ответ

4 голосов
/ 02 февраля 2011

Вы должны прикрепить яйца к определенным версиям, чтобы вы могли контролировать, какие яйца используются каждый раз при запуске сборки:

[buildout]
versions = versions

[versions]
foo = 1.0
bar = 1.1
spam = 1.0b2

Опция versions в разделе [buildout] позволяетВы называете раздел, который содержит версии для ваших пакетов.В этом примере я назвал этот раздел [versions], но вы можете использовать любое имя, которое вам нравится;представьте, если у вас будет раздел [release1] и [release2], с параметром versions, указывающим на любой из них, чтобы выбрать конкретную комбинацию выводов версии.

Когда яйцо прикреплено к определенной версии, подобной этойТолько эта версия яйца может удовлетворить требования этой сборки.Если ваши ссылки для поиска указывают на местоположение, содержащее эту версию, то яйцо будет загружено оттуда, а не из PyPI.

Есть еще 2 функции компоновки, которые могут помочь управлять выводами версий.Первый - это опция компоновки по умолчанию, которая называется allow-picked-versions:

[buildout]
allow-picked-versions = false

. По умолчанию используется true, что означает, что buildout может выбрать для вас версию, которая в противном случае удовлетворяет всем требованиям.Если для этого параметра установлено значение false, то для любого яйца, у которого нет версии с булавкой версии, будет выдано сообщение об ошибке.Используйте это, чтобы обнаружить, что вам нужно еще закрепить яйца.

Другой вариант - использовать расширение buildout.dumppickedversions для сборки:

[buildout]
extensions = buildout.dumppickedversions

Когдадобавленный к вашей сборке, каждый раз, когда вы запускаете сборку, список выбранных версий перечисляется в конце, для любого яйца, которое не было прикреплено, в формате, непосредственно подходящем для включения в конфигурацию сборки.Таким образом, вы можете позволить buildout выяснить, какие яйца использовать, а затем прикрепить их к этим версиям.

...