Python 3 中的相對導入:揭開謎底
相對導入提供了一種從同一目錄導入模組的便捷方法。但是,在某些情況下,可能會導致以下錯誤:
要理解這些錯誤,我們來分析一下常見的目錄結構:
main.py mypackage/ __init__.py mymodule.py myothermodule.py
在這種情況下,相對導入“from .mymodule import 「myothermodule.py」中的「myfunction」將會失敗,因為「mymodule.py」在模組搜尋路徑中不可見。解決方案是使用絕對導入而不是相對導入:
這可以確保Python在“mypackage”模組路徑中搜尋“mymodule”,假設該路徑位於sys.path 中。 🎜>from mypackage.mymodule import myfunction
import sys import os SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) sys.path.append(os.path.dirname(SCRIPT_DIR)) from mypackage.mymodule import myfunction
以上是為什麼在 Python 3 中使用相對導入時會出現「ImportError」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!