Реализация простого типа содержимого ловкости для plone 4

У меня очень разочаровывающее начало изучения разработки Plone. Я хотел бы разработать тип контента, основанный на ловкости, для Plone 4. Я опытный разработчик Python, имею некоторое знание Zope и Grok, но довольно новичок в сборке. Тем не менее, я читал "Professional Plone 4 Development" Мартина Аспели, но некоторая информация о версии в книге кажется устаревшей.

Используя buildout, я смог запустить экземпляр Plone. ZopeSkel установлен, но когда я пытаюсь создать новый пакет, я получаю следующую ошибку:

**************************************************************************
**  Your new package supports local commands.  To access them, change
**  directories into the 'src' directory inside your new package.
**  From there, you will be able to run the command `paster add
**  --list` to see the local commands available for this package.
**************************************************************************


ERROR: No egg-info directory found (looked in ./domma.voucher/./domma.voucher.egg-info, ./domma.voucher/bootstrap.py/domma.voucher.egg-info, ./domma.voucher/bootstrap.pyo/domma.voucher.egg-info, ./domma.voucher/buildout.cfg/domma.voucher.egg-info, ./domma.voucher/CHANGES.txt/domma.voucher.egg-info, ./domma.voucher/CONTRIBUTORS.txt/domma.voucher.egg-info, ./domma.voucher/docs/domma.voucher.egg-info, ./domma.voucher/domma/domma.voucher.egg-info, ./domma.voucher/README.txt/domma.voucher.egg-info, ./domma.voucher/setup.cfg/domma.voucher.egg-info, ./domma.voucher/setup.py/domma.voucher.egg-info, ./domma.voucher/src/domma.voucher.egg-info)

Если я пытаюсь запустить пастер из данного каталога, он говорит мне, что команда «добавить» неизвестна. Я пробовал разные версии ZopeSkel и пробовал необработанные шаблоны plone, а также zopeskel.dexterity. Вывод немного меняется в зависимости от версии и шаблона, но результат остается прежним.

Очевидно, что разработка Plone очень чувствительна к изменениям версий, что делает старую документацию совершенно бесполезной. http://plone.org/products/dexterity/documentation/manual/developer-manual говорит мне, что последний раз он обновлялся 1114 назад.

Может ли кто-нибудь дать мне отправную точку для разработки очень простого типа содержимого ловкости для Plone 4, который действительно работает?


person Achim    schedule 12.08.2012    source источник
comment
Вы используете правильную версию ZopeSkel?   -  person Andreas Jung    schedule 12.08.2012


Ответы (4)


Что бы это ни стоило, в то время как есть несколько более новых версий некоторых пакетов, Professional Plone 4 Development актуален с Plone 4.1. Я бы посоветовал вам использовать его и начать с примера кода. Не пытайтесь произвольно обновлять вещи, пока не будете уверены, что у вас есть работающая отправная точка, и все должно быть в порядке.

person optilude    schedule 12.08.2012
comment
На самом деле это была проблема с версией, но очень глупая: я использовал Python 2.7, а не 2.6. Похоже, это вызывает всевозможные странные ошибки. Я перешел на 2.6, и теперь все выглядит намного лучше. Я постараюсь продолжить свой путь. Извините, это была полностью моя вина! - person Achim; 21.08.2012

http://pigeonflight.blogspot.com/2012/01/dexterity-development-quickstart-using.html предлагает хороший краткий обзор. Самая последняя документация по ловкости находится по адресу http://dexterity-developer-manual.readthedocs.org/en/latest/index.html. Да, это немного подвижная цель с точки зрения документации, не столько из-за Dexterity, которая стабильна и находится в производстве, а главным образом из-за того, что Zopeskel сейчас находится в стадии интенсивной разработки/модернизации. Извини за это.

person Jon Stahl    schedule 12.08.2012
comment
Также известно, что руководство по ловкости не устарело, хотя оно того стоит, даже если некоторые страницы не обновлялись какое-то время. - person optilude; 12.08.2012
comment
На данный момент dexterity-developer-manual.readthedocs.org/en ссылка /latest/index.html больше не работает; в настоящее время руководство разработчика Dexterity находится здесь (версия Plone 4) - person Tobias; 09.11.2017

Из [https://github.com/collective/templer.plone/blob/master/README.txt][1]

Templer не может сосуществовать со старым ZopeSkel в одной сборке или с Python virtualenv.

В противном случае вы столкнетесь со следующей ошибкой при попытке создать пакеты:

  IOError: No egg-info directory found (looked in ./mycompany.content/./mycompany.content.egg-info, ....

Templer — это последнее воплощение ZopeSkel (версия 3). Я не уверен, какая у вас версия ZopeSkel или у вас установлены смешанные версии в buildout или virtualenv. Но, скорее всего, виновата конфликтующая установка ZopeSkel.

Я бы начал с нуля, воссоздал vitualenv и просто установил последнюю версию ZopeSkel 2 через buildout. ZopeSkel 3 или Templer все еще находятся в активной разработке, и не все шаблоны были перенесены.

person h2o    schedule 13.08.2012

Используя эту сборку, я смог создать новый сайт Plone 4.1.4 с новым типом контента Dexterity. Это не должен быть официальный ответ, но вставка конфигурации в изменчивую службу, такую ​​​​как pastebin, не является вариантом для постоянной документации.

# buildout.cfg file for Plone 4 development work
# - for production installations please use http://plone.org/download
# Each part has more information about its recipe on PyPi
# http://pypi.python.org/pypi 
# ... just reach by the recipe name
[buildout]
parts =  
    instance
    zopepy
    i18ndude
    zopeskel
    test
#    omelette

extends = 
    http://dist.plone.org/release/4.1-latest/versions.cfg
    http://good-py.appspot.com/release/dexterity/1.2.1?plone=4.1.4

# Add additional egg download sources here. dist.plone.org contains archives
# of Plone packages.
find-links =
    http://dist.plone.org/release/4.1-latest
    http://dist.plone.org/thirdparty

extensions = 
    mr.developer
    buildout.dumppickedversions

sources = sources

versions = versions

auto-checkout = 
    nva.borrow

# Create bin/instance command to manage Zope start up and shutdown
[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
http-address = 16080
debug-mode = off
verbose-security = on
blob-storage = var/blobstorage
zope-conf-additional = %import sauna.reload

eggs =
    Pillow
    Plone
    nva.borrow
    sauna.reload
    plone.app.dexterity

# Some pre-Plone 3.3 packages may need you to register the package name here in 
# order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)
# - this is never required for packages in the Products namespace (Products.*)
zcml =
#    nva.borrow
    sauna.reload


# zopepy commands allows you to execute Python scripts using a PYTHONPATH 
# including all the configured eggs
[zopepy]
recipe = zc.recipe.egg
eggs = ${instance:eggs}
interpreter = zopepy
scripts = zopepy

# create bin/i18ndude command
[i18ndude]
unzip = true
recipe = zc.recipe.egg
eggs = i18ndude

# create bin/test command
[test]
recipe = zc.recipe.testrunner
defaults = ['--auto-color', '--auto-progress']
eggs =
    ${instance:eggs}

# create ZopeSkel and paster commands with dexterity support
[zopeskel]
recipe = zc.recipe.egg
eggs =
    ZopeSkel<=2.99
    PasteScript
    zopeskel.dexterity<=2.99
    ${instance:eggs}

# symlinks all Python source code to parts/omelette folder when buildout is run
# windows users will need to install additional software for this part to build 
# correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for
# relevant details.
# [omelette]
# recipe = collective.recipe.omelette
# eggs = ${instance:eggs}

# Put your mr.developer managed source code repositories here, see
# http://pypi.python.org/pypi/mr.developer for details on the format of
# this part
[sources]
nva.borrow = svn https://novareto.googlecode.com/svn/nva.borrow/trunk

# Version pindowns for new style products go here - this section extends one 
# provided in http://dist.plone.org/release/
[versions]
person Andreas Jung    schedule 12.08.2012
comment
Просто любопытно: вы расширяете dist.plone.org/release/4.2-latest/ version.cfg для создания сайта Plone 4.1.4? - person Achim; 12.08.2012
comment
это, возможно, виновник бывшего звонка ZopeSkel - person Andreas Jung; 13.08.2012
comment
Я создал новый virtualenv, скопировал ваш buildout.cfg, запустил boostrap.py и bin/buildout. Удалось запустить bin/instance fg (с некоторыми предупреждениями). Пытался запустить ../bin/zopeskel plone domma.contenta в моей папке src. Результат в ImportError: Нет модуля с именем util.template. - person Achim; 14.08.2012
comment
Я хотел бы связаться с вами за пределами SO. Если это нормально для вас, пожалуйста, дайте мне знать. - person Achim; 14.08.2012