我猜这是一个python路径问题(在FreeBSD 8.1上)。
我试图使用zodbconvert将Data.fs转换为Postgresql。我已经下载了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
感谢。 Nikolaj G。
答案 0 :(得分:5)
如果你正在使用buildout
(我希望你是),让python路径中正确包含所有zodbconvert
依赖项的最简单方法是让buildout
创建脚本你:
[buildout]
...
parts =
...
zodbconvert
[zodbconvert]
recipe = zc.recipe.egg
eggs = ${buildout:eggs}
scripts = zodbconvert
然后 Buildout将为您创建一个新的bin/zodbconvert
脚本,其中包含sys.path
中的所有buildout鸡蛋。
或者,您可以创建一个通用的python脚本运行器,其中包含buildout中的所有egg,并且可以运行任意脚本;您可以使用它来代替bare-bones python解释器来运行sys.path
中所有buildout egg的任意python脚本:
[buildout]
...
parts =
...
zopepy
[zopepy]
recipe = zc.recipe.egg
eggs = ${buildout:eggs}
interpreter = zopepy
scripts = zopepy
然后可以使用bin/zopepy
脚本运行任意python脚本,其中所有的buildout egg已经在sys.path
中,因此bin/zopepy zodbconvert.py fstodb.conf
应该有效。
请注意,Plone统一安装程序已附带zopepy
部分,我选择的此脚本的部分名称是故意使用相同的名称。
如果您没有使用buildout
(以及Plone 4,这不是一个好主意),您还可以在{{{{ {1}}环境变量。
答案 1 :(得分:0)
快速解决..
locate persistent
export PYTHONPATH=$PYTHONPATH:/path/to/your/python_persistent_dir
答案 2 :(得分:0)
您没有在Python安装中包含 ZODB 包。调整PYTHONPATH以包含 ZODB 包或仅easy_install ZODB
- 取决于您要执行的操作。