Укажите приоритет в buildout.cfg для получения яиц

1

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

Например:

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

eggs =
    foo
    bar

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

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

Любая идея, как это решить?

Cheers, Мартин

Теги:
buildout

1 ответ

4
Лучший ответ

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

[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, для любого яйца, у которого нет конфигурации вывода PIN-кода, выдается ошибка. Используйте это, чтобы обнаружить, что вам нужно все еще кончить яйцами.

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

[buildout]
extensions = buildout.dumppickedversions

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

  • 0
    Спасибо Мартейн. Действительно полезно еще раз :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню