colle.monkeypatch не может определить версию Zope (z3c.form) - PullRequest
1 голос
/ 24 марта 2011

На некоторых наших серверах colle.monkeypatch не работает:

    Unable to detect Zope version. Please make sure you have Zope 2.10.4 or newer installed.
    2011-03-24 10:17:13 ERROR collective.monkeypatcher Could not patch because version not recognized. Wanted: [2, 13, 9], Installed: []
    2011-03-24 10:17:13 INFO collective.monkeypatcher Preconditions for patching scope <class 'z3c.form.form.BaseForm'> not met (Zope2-=2.13.999)!
    2011-03-24 10:17:13 ERROR collective.monkeypatcher Could not patch because version not recognized. Wanted: [2, 13, 9], Installed: []
    2011-03-24 10:17:13 INFO collective.monkeypatcher Preconditions for patching scope <class 'z3c.form.group.GroupForm'> not met (Zope2-=2.13.999)!

Мы пробовали сборку на разных компьютерах и не можем найти надежный шаблон, почему он не работает (возможно, что-то типа яйца и версияpindown related)

В чем может быть проблема и как

Ответы [ 2 ]

2 голосов
/ 25 марта 2011

Unable to detect Zope version. Please make sure you have Zope 2.10.4 or newer installed. происходит от более старых версий Plone (версия 3.0 и более ранние, она была удалена в строке 3.1).Он использует API старого стиля App.version_txt.getZopeVersion для чтения файла version.txt из каталога модуля Zope2, но это не всегда записывается.Я не вижу этого в моих установках Zope2, установленных с рецептом plone.recipe.zope2install в любом случае.В противном случае это сообщение журнала безвредно, если вы используете Zope 2.10.4 или новее.

С появлением подходящего яйца Zope2 Plone теперь использует модуль pkg_resources для проведения этого теста, а в Zope 2.12 - getZopeVersion API также использует pkg_resources для внутреннего использования.В предварительном тесте условий дляватерного коллективного коллектива также используется pkg_resources для анализа версий пакетов.

Из вашей записи в журнале Unable to detect Zope version я делаю вывод, что вы используете более старую версию Plone (3.0 или старше), и, таким образом, вы, скорее всего, скорее всегоиспользуя Zope 2.10.Zope 2.10 - это не яйцо, поэтому для pkg_resources не существует метаданных о яйце для получения версии.Таким образом, проверка версии не выполняется для любой версии Zope до 2.12.

Очевидный обходной путь - не использовать пакет, определяющий monkeypatch на серверах Zope старше 2.12.Но вы также можете создать поддельное яйцо с информацией о версии, включенной в рецепт plone.recipe.zope2install:

[zope2]
recipe = plone.recipe.zope2install
...
additional-fake-eggs =
    Zope2 = 2.10.11

Поддельные яйца предоставляют метаданные, достаточные для pkg_resources, чтобы получить номер версии, но рецепт zope2install записывает Zope2 по умолчаниюподдельное яйцо с версией 0.0.Определив поддельное яйцо с номером версии, вы получите pkg_resources, который предоставит вам достаточно информации для выполнения предварительного условия.Возможно, вам придется обновить plone.recipe.zope2install версию, я вижу, что некоторые рефакторинг и исправления ошибок были применены к способу создания поддельных яиц, которые могут повлиять на вас.

0 голосов
/ 24 марта 2011

Я думаю, что проблема в атрибуте preconditions вашей директивы monkeypatch.

См. Документацию по http://pypi.python.org/pypi/collective.monkeypatcher

...