我对Python完全陌生,想使用py2neo和tornado模块。
为了做到这一点,我为这两个模块运行了 setup.py 并将它们放入文件夹中
C:\Python32\modules\py2neo
Run Code Online (Sandbox Code Playgroud)
和
C:\Python32\modules\tornado
Run Code Online (Sandbox Code Playgroud)
在主程序中,我猜这些行告诉解释器在哪里查找文件:
import sys
sys.path.append(r'C:\Python32\modules')
# Import Neo4j modules
from py2neo import neo4j, cypher
Run Code Online (Sandbox Code Playgroud)
阅读这本书我还添加了环境变量(在Windows 7中)
PYTHONPATH = C:\Python32\modules;C:\Python32\modules\tornado;C:\Python32\modules\py2neo
Run Code Online (Sandbox Code Playgroud)
现在我发现必须重新启动Python Shell才能加载修改后的PYTHONPATH变量以防变量值为PYTHONPATH = C:\Python32\modules
并且程序包含该行
from py2neo import neo4j, cypher
Run Code Online (Sandbox Code Playgroud)
那么以下几行是无用的:
import sys
sys.path.append(r'C:\Python32\modules')
Run Code Online (Sandbox Code Playgroud)
但是,当我运行该程序时,出现以下错误:
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
Run Code Online (Sandbox Code Playgroud)
在文件 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
Run Code Online (Sandbox Code Playgroud)
而且rest.py 文件位于文件夹中C:\Python32\modules\py2neo,所以我不知道为什么会收到错误
导入错误:没有名为rest的模块
尝试在 Python Shell 中导入 py2neo 目录并列出模块,我得到:
>>> import py2neo
>>> [name for name in dir(py2neo) if name[0] != '_']
['rest']
Run Code Online (Sandbox Code Playgroud)
我想还有一些不必要的导入,如果有人解释应该添加和排除哪些导入(在 PYTHONPATH 和脚本中)以便程序运行没有错误,我将非常感激。
我怀疑问题在于相对导入的语法在从 Python 2 到 Python 3 的import过渡中发生了变化:
相对导入唯一可接受的语法是 from .[module] import name。所有不以 . 被解释为绝对进口。
您安装的模块使用在 Python 2 中工作的语法。您可以为 Python 2 安装它们,或者查找py2neo支持 Python 3 的版本,或者尝试手动移植它(该import行应该类似于from . import rest,但是您'稍后可能会遇到其他问题)或使用2to3工具。
更新:我尝试py2neo使用pip. Python3 失败,Python 2 成功完成。版本为 1.2.14。