Я предполагаю, что это проблема пути python (на FreeBSD 8.1).
Я пытаюсь преобразовать Data.fs в Postgresql с помощью zodbconvert. Ive скачал RelStorage-1.5.0b2 и работает:
/usr/local/Plone/Python-2.6/bin/python zodbconvert.py fstodb.conf
чтобы использовать версию, с которой работает Plone.
Ошибка, которую я получаю:
Traceback (most recent call last):
File "zodbconvert.py", line 22, in <module>
from persistent.TimeStamp import TimeStamp
ImportError: No module named persistent.TimeStamp
Версии:
PS по умолчанию "python --version" - 2.7.1
Спасибо. Николай Г..
Если вы используете buildout
(я надеюсь, что вы), самый простой способ получить все зависимости zodbconvert
, правильно включенные в путь python, - это buildout
создать script для вас:
[buildout]
...
parts =
...
zodbconvert
[zodbconvert]
recipe = zc.recipe.egg
eggs = ${buildout:eggs}
scripts = zodbconvert
Затем Buildout создаст новый bin/zodbconvert
script для вас, который включает в себя все яйца сборки в sys.path
.
В качестве альтернативы вы можете создать общий бегун python script, который включает в себя все яйца в вашем buildout и может запускать произвольные скрипты; вы можете использовать это вместо интерпретатора python без костей для запуска произвольных скриптов python со всеми яйцами сборки в sys.path
:
[buildout]
...
parts =
...
zopepy
[zopepy]
recipe = zc.recipe.egg
eggs = ${buildout:eggs}
interpreter = zopepy
scripts = zopepy
bin/zopepy
script может затем использоваться для запуска произвольных скриптов python со всеми вашими яйцами сборки уже в sys.path
, поэтому bin/zopepy zodbconvert.py fstodb.conf
должен работать.
Обратите внимание, что единый установщик Plone уже поставляется с включенной частью zopepy
, и мой выбор partname для этого script был намеренно с использованием того же имени.
Если вы не используете buildout
(и с Plone 4, это не очень хорошая идея в целом), вы также можете перечислить необходимые пакеты (ZODB3, zope.interface, RelStorage, psycopg2) в PYTHONPATH
переменная среды.
Вы не включили пакет ZODB с установкой Python. Либо настройте PYTHONPATH, чтобы включить пакет ZODB, либо просто easy_install ZODB
- в зависимости от того, что вы пытаетесь сделать.
psycopg2
, RelStorage
и zope.interface
. Лучше просто пойти с bin / zopepy или выделенной частью buildout, не так ли? :-)
быстрое решение..
locate persistent
export PYTHONPATH=$PYTHONPATH:/path/to/your/python_persistent_dir
ZODB
, zope.interface
, RelStorage
и psycopg2
пакеты.