Продолжение. Начало тут.
При установке продукта ExtFile я получил проблему
zope2 extfile product ImportError:
No module named ZRDB.TM
гугление
показало, что искомый модуль был вынесен
в отдельный пакет, не устанавливаемый
по умолчанию.
Factored out the
Products.ZSQLMethods into its own distribution. The distribution also
includes the Shared.DC.ZRDB code
Чтобы установить
необходимое, надо сделать кастомный
билдаут. Этим и займемся.
По инструкции
(http://docs.zope.org/zope2/releases/2.13/INSTALL-buildout.html#creating-a-buildout-based-zope-instance),
мы сделаем билдаут с нужным нам набором
пакетов и включающий в себя инстанс (в
предыдущем случае инстанс создавался
спецкомандой после билдаутной установки).
Такой способ наверно
удобен, если уже есть Data.fs и
конфиг, надо только софт накатить или
обновить. Хотя, если честно, я не очень
понимаю, почему просто не поправить
buildout.cfg в предыдущем
варианте. Ну да ладно.
Понеслась.
C:\d\Zope>call setenv.cmd mkdir custom\zope\inst pushd custom\zope\inst C:\d\Zope\custom\zope\inst>mkdir etc mkdir log mkdir var python -murllib http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py>bootstrap.py |
загрузчик
есть, папки etc, var, log есть.
Самое время в них поместить имеющееся
содержимое, если в наличии. И создать
конфиг билдаута:
vi buildout.cfg
[buildout] parts = instance extends = http://download.zope.org/Zope2/index/2.13.13/versions.cfg [instance] recipe = zc.recipe.egg eggs = Zope2 Products.ZSQLMethods interpreter = zopepy scripts = runzope zopectl initialization = import sys sys.argv[1:1] = ['-C', r'${buildout:directory}\etc\zope.conf'] |
билдаутим
python bootstrap.py bin\buildout |
Если конфиг еще не
сделан, теперь необходимо либо сделать
новый конфиг из заготовки
copy c:\d\Zope\custom\zope\inst\eggs\zope2-2.13.13-py2.7.egg\Zope2\utilities\skel\etc\zope.conf.in etc\zope.conf
и отредактировать его, либо поправить
уже имеющийся
vi etc\zope.conf
# меняем строки
%define INSTANCE c:\d\Zope\custom\zope\inst
debug-mode on
default-zpublisher-encoding utf-8
|
и
можно запускать:
start bin\runzope.exe
Что еще?
У меня не захотел
работать bin\zopectl.exe
который понадобился
для создания учетки админа (это надо
сделать, если базы Data.fs не
было). При попытке создать учетку, ругался
словами
>zopectl adduser admin 1234 ImportError: No module named Zope2
Пришлось сделать обертку
bin\zopectl.bat
@set PYTHON=c:\d\Zope\custom\zope\inst\bin\zopepy @set INSTANCE_HOME=c:\d\Zope\custom\zope\inst @set CONFIG_FILE=%INSTANCE_HOME%\etc\zope.conf @set ZDCTL=c:\d\Zope\custom\zope\inst\bin\zopectl.exe "%ZDCTL%" %1 %2 %3 %4 %5 %6 %7 |
и запускать уже так
C:\d\Zope\custom\zope\inst>bin\zopectl.bat zopectl> help zopectl> adduser admin 1234 Created user: admin zopectl> fg zopectl> quit |
По аналогии, можно
сделать и запускатель bin\runzope.bat
@REM ~ C:\d\Zope\custom\zope\inst\bin\runzope.bat @set INSTANCE_HOME=c:\d\Zope\custom\zope\inst @set CONFIG_FILE=%INSTANCE_HOME%\etc\zope.conf @set ZOPE_RUN=c:\d\Zope\custom\zope\inst\bin\runzope "%ZOPE_RUN%" %1 %2 %3 %4 %5 %6 %7 |
В предыдущем варианте
билдаута такие обертки создаются
автоматически. А в этом нет. Лень
разбираться — почему.
Вывод: билдаут это мощно
но запутанно. Так или иначе, свою проблему
(ImportError: No module named ZRDB.TM) с добавлением
продукта ExtFile я решил.
Правда, полезли другие ошибки, но это
уже отдельная история.
На досуге можно еще
попробовать еще один рецепт билдаута
Комментариев нет:
Отправить комментарий