1

これは 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

バージョン:

  • Plone 4.0.5 (python 2.6)
  • Postgresql 9.0.3
  • FreeBSD 8.1
  • python26-2.6.6_1
  • python27-2.7.1_1

PS デフォルトの "python --version" は 2.7.1 です

ありがとう。ニコライ G.

4

3 に答える 3

5

使用している場合buildout(そうであることを願っています)、すべてのzodbconvert依存関係を Python パスに適切に含める最も簡単な方法はbuildout、スクリプトを作成することです。

[buildout]
...
parts =
     ...
     zodbconvert

[zodbconvert]
recipe = zc.recipe.egg
eggs = ${buildout:eggs}
scripts = zodbconvert

bin/zodbconvertその後、Buildoutは、すべての buildout の卵を含む新しいスクリプトを作成しますsys.path

または、ビルドアウトにすべての卵を含め、任意のスクリプトを実行できる汎用の python スクリプト ランナーを作成できます。必要最小限の python インタープリターの代わりにこれを使用して、ビルドアウトのすべての卵を使用して任意の python スクリプトを実行できますsys.path

[buildout]
...
parts =
    ...
    zopepy

[zopepy]
recipe = zc.recipe.egg
eggs = ${buildout:eggs}
interpreter = zopepy
scripts = zopepy

その後bin/zopepy、スクリプトを使用して、ビルドアウトのすべての卵が既に にある任意の python スクリプトを実行できるsys.pathため、機能するbin/zopepy zodbconvert.py fstodb.confはずです。

Plone 統合インストーラーには既にzopepyパーツが含まれていることに注意してください。このスクリプトのパーツ名の選択は、意図的に同じ名前を使用していました。

使用していない場合buildout(そして Plone 4 を使用している場合、全体としては良い考えではありません)、必要なパッケージ (ZODB3、zope.interface、RelStorage、psycopg2) をPYTHONPATH環境変数にリストすることもできます。

于 2011-04-24T11:05:11.893 に答える
0

クイックフィックス..

locate persistent
export PYTHONPATH=$PYTHONPATH:/path/to/your/python_persistent_dir
于 2011-04-24T09:54:29.010 に答える
0

Python インストールにZODBパッケージが含まれていません。PYTHONPATH を調整してZODBパッケージを含めるeasy_install ZODBか、何をしようとしているかによって異なります。

于 2011-04-24T09:57:00.573 に答える