4

私はPythonがまったく初めてで、py2neoとtornadoモジュールを使いたいと思っていました.

それを行うために、両方のモジュールに対して setup.py を実行し、それらをフォルダーに配置しました

C:\Python32\modules\py2neo

C:\Python32\modules\tornado

メインプログラムでは、これらの行がインタープリターにファイルの検索場所を伝えていると思います。

import sys
sys.path.append(r'C:\Python32\modules')



# Import Neo4j modules
from py2neo import neo4j, cypher

本を読んで環境変数も追加しました(Windows 7の場合)

PYTHONPATH = C:\Python32\modules;C:\Python32\modules\tornado;C:\Python32\modules\py2neo

編集

変更された PYTHONPATH 変数をロードするには、Python シェルを再起動する必要があることがわかりました。変数の値がPYTHONPATH = C:\Python32\modules で、プログラムに次の行が含まれている場合

from py2neo import neo4j, cypher

その場合、次の行は役に立ちません。

import sys
sys.path.append(r'C:\Python32\modules')

ただし、プログラムを実行すると、次のエラーが表示されます。

Traceback (most recent call last):
  File "C:\...\Python Projects\HelloPython\HelloPython\Hellopy2neo.py", line 15, in <module>
    from py2neo import neo4j, cypher
  File "C:\Python32\modules\py2neo\neo4j.py", line 38, in <module>
    import rest, batch, cypher
ImportError: No module named rest

ファイル neo4j.py には、次の行があります。

try:
    import json
except ImportError:
    import simplejson as json
try:
    from urllib.parse import quote
except ImportError:
    from urllib import quote
try:
    from . import rest, batch, cypher
except ImportError:
    import rest, batch, cypher #line38

rest.py ファイルはフォルダーにあるC:\Python32\modules\py2neoため、エラーが発生する理由がわかりません

ImportError: rest という名前のモジュールがありません

編集2:

Python Shell に py2neo ディレクトリをインポートしてモジュールを一覧表示しようとすると、次のようになります。

>>> import py2neo
>>> [name for name in dir(py2neo) if name[0] != '_']
['rest']

不必要なインポートもいくつかあると思いますが、プログラムをエラーなしで実行するには、どのインポートを (PYTHONPATH とスクリプトで) 追加および除外する必要があるかを誰かが説明してくれれば、非常に感謝しています。

4

1 に答える 1

1

問題は、 Python2からPython3importへの移行中に相対インポートの構文が変更されたことだと思います。

相対インポートで受け入れられる構文は、。[module]importnameからのみです。で始まらないすべてのインポートフォーム。絶対インポートとして解釈されます。

インストールしたモジュールは、Python 2で機能する構文を使用します。Python2用にインストールするか、py2neoPython 3をサポートするバージョンを探すか、手動で移植してみてください(import行は次のようfrom . import restになりますが、おそらく後で他の問題に直面するでしょう)または2to3ツールで。

更新:でインストールpy2neoしてみましpipた。Python3では失敗し、Python2では正常に終了しました。バージョンは1.2.14です。

于 2012-06-17T09:28:35.633 に答える