【问题标题】:Weird relative import resolution error in python 3.2.3python 3.2.3中奇怪的相对导入解析错误
【发布时间】:2014-08-14 13:23:39
【问题描述】:

我在我的一个程序中遇到了以下导入解析错误:

I am: homie.translators.is24.rest.translator
Traceback (most recent call last):
  File "/usr/local/sbin/is24rest", line 3, in <module>
    from homie.interfaces.is24.rest import __main__
  File "/usr/local/lib/python3.2/dist-packages/homie/interfaces/is24/rest/__init__.py", line 8, in <module>
    from .exporter import Exporter
  File "/usr/local/lib/python3.2/dist-packages/homie/interfaces/is24/rest/exporter.py", line 12, in <module>
    from homie.translators.is24.rest.translator import Translator
  File "/usr/local/lib/python3.2/dist-packages/homie/translators/is24/rest/translator.py", line 9, in <module>
    from .factories.rest.restFactory import RestFactory
ImportError: No module named factories.rest.restFactory

/usr/local/lib/python3.2/dist-packages/homie/translators/is24/rest/translator.py的内容是

"""
Created on 18.06.2014

@author: Richard Neumann
"""
print('I am: ' + str(__name__))
from homie.translators.abc import Translator as T

from .factories.rest.restFactory import RestFactory
from .factories.openimmo.openimmoFactory import OpenImmoFactory


class Translator(T):
<snip>

另外,相关模块存在:

root@srv:/usr/src/is24-translator# ls /usr/local/lib/python3.2/dist-packages/homie/translators/is24/rest/factories/rest/
abc.py  attachments  __init__.py  __pycache__  realestates  restFactory.py

为什么 python3 在这里尝试进行绝对导入? 我只在 Debian 7 下使用 python 3.2.3 遇到这个问题。 在带有 python 3.4.1 的 Arch 下,它工作得很好。

我错过了什么吗?

【问题讨论】:

    标签: python python-3.x import relative-import


    【解决方案1】:

    .factories 中缺少 __init__.py,导致此错误。 我花了一段时间才意识到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多