Реализация простого типа контента ловкости для Plone 4
Я очень расстраиваюсь, начав изучать разработку Plone. Я хотел бы разработать тип контента, основанный на ловкости, для Plone 4. Я опытный разработчик Python, немного знакомый с Zope и Grok, будучи довольно новым для сборки. Тем не менее, я прочитал "Профессиональную разработку Plone 4" Мартина Аспели, но довольно некоторая информация о версии в книге, кажется, устарела.
Используя 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)
Если я пытаюсь запустить paster из данного каталога, он говорит мне, что команда "добавить" не знает. Я пробовал разные версии ZopeSkel, пробовал необработанные шаблоны plone, а также zopeskel.dexterity. Вывод немного меняется в зависимости от версии и шаблона, но результат остается прежним.
Разработка Obvisouly Plone кажется очень чувствительной к изменениям версий, что делает устаревшую документацию совершенно бесполезной. http://plone.org/products/dexterity/documentation/manual/developer-manual сообщает мне, что он был обновлен в последний раз 1114 лет назад.
Может ли кто-нибудь дать мне отправную точку для разработки очень простого типа контента "Ловкость" для Plone 4, который действительно работает?
4 ответа
Что бы это ни стоило, в то время как есть несколько более новых версий некоторых пакетов, Профессиональная разработка Plone 4 актуальна с Plone 4.1. Я бы предложил вам использовать его и начать с примера кода. Не пытайтесь произвольно модернизировать вещи, пока не узнаете, что у вас есть рабочая отправная точка, и с вами должно быть все в порядке.
http://pigeonflight.blogspot.com/2012/01/dexterity-development-quickstart-using.html предлагает хороший быстрый старт. Самые последние документы о Ловкости находятся по адресу http://dexterity-developer-manual.readthedocs.org/en/latest/index.html. Да, это немного подвижная цель, с точки зрения документации, не столько из-за Ловкости, которая стабильна и находится в производстве, но главным образом потому, что Zopeskel сейчас находится в стадии интенсивного развития / модернизации. Извини за это.
От [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 все еще находятся в стадии разработки, и не все шаблоны были перенесены.
Я смог создать новый сайт 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]