我是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
现在我发现必须重新启动Python Shell才能加载修改后的PYTHONPATH变量
如果变量值为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的模块
尝试在Python Shell中导入py2neo directoy并列出我得到的模块:
>>> import py2neo
>>> [name for name in dir(py2neo) if name[0] != '_']
['rest']
我想也有一些不必要的导入,如果有人解释过,应该添加和排除哪些导入(在PYTHONPATH和脚本中)以使程序正常运行。
答案 0 :(得分:0)
我怀疑问题是相对导入的import
语法在转换from Python 2 to Python 3中发生了变化:
相对导入的唯一可接受的语法来自。[模块] 导入名称。所有导入表单都不以。被解释为 绝对进口。
您安装的模块使用可在Python 2中运行的语法。您可以为Python 2安装它们,也可以查找支持Python 3的py2neo
版本,或者尝试手动移植它( import
行应该看起来像from . import rest
,但您可能会在以后遇到其他问题)或使用2to3
工具。
更新:我尝试使用py2neo
安装pip
。 Python3失败并成功完成了Python 2.版本为1.2.14。