簡體   English   中英

奇怪的不一致 python ImportError - 可能的循環依賴?

[英]Bizarre inconsistent python ImportError - possible circular dependency?

我正在嘗試重構一些 python 代碼,但遇到了一個我不明白的導入錯誤。 我懷疑某處可能存在循環依賴,但我沒有看到它,而且我沒有從錯誤消息中得到太多提示。 代碼庫很大,但這里有兩個感興趣的模塊:

radian/models.py /models.py 定義了一個名為 ACount 的ACount

datalayer/radian.py包含以下行:

from radian.models import ACount

當我運行代碼(以交互方式或從主程序)時,導入失敗的方式對我來說沒有意義。

>>> from radian.models import ACount
>>> import datalayer.radian
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Users/leopd/dev/dbproj/datalayer/radian.py", line 10, in <module>
    from radian.models import ACount
ImportError: No module named models

我最好的猜測是某處存在循環依賴 - radian正在導入導入datalayer的東西。 但我沒有看到。 而且錯誤消息對我沒有任何意義。 有什么想法嗎?

- 更新 -

我在 Mac 上使用 python 2.6.1。 __init__.py文件中有一些代碼,但它們只能從標准 python 包中導入。

datalayer文件夾中的任何模塊(包括radian.py ),當它from radian radian 看到時,將假定datalayer/radian.py是相關模塊。 你可能需要做

from __future__ import absolute_import

datalayer/radian.py和其他類似受影響的模塊中,然后檢查所有導入以確保它們是絕對的。 您可能能夠擺脫重命名datalayer/radian.py和引用它的導入,這取決於該模塊的引用位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM