Python如何/在哪里寻找模块?

时间:2012-06-17 08:22:48

标签: python

我是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的模块

EDIT2:

尝试在Python Shell中导入py2neo directoy并列出我得到的模块:

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

我想也有一些不必要的导入,如果有人解释过,应该添加和排除哪些导入(在PYTHONPATH和脚本中)以使程序正常运行。

1 个答案:

答案 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。