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