Python 3 中的相對導入:對ModuleNotFoundError 進行故障排除
在Python 3 中,相對導入允許您在同一包中導入允許您在同一包中導入允許您在同一包中導入允許您在同一包中導入模組。但是,當遇到錯誤「ModuleNotFoundError:沒有名為 'x' 的模組」時,了解相對導入和絕對導入之間的差異至關重要。
絕對導入
絕對導入在 sys.path 上找到模組,這是 Python 搜尋模組的目錄列表。要執行絕對導入,請使用以下語法:
<code class="python">import module</code>
在您的範例中,絕對導入config.py 將如下所示:
<code class="python">import config</code>
相對導入
相對導入相對於套件中目前模組的位置導入模組。若要執行相對導入,請使用下列語法:
<code class="python">from . import module</code>
但是,相對導入要求模組位於套件內。如果 test.py 不在套件中,則相對導入將不起作用。
故障排除
根據提供的程式碼,問題是 test.py 是當它不屬於套件的一部分時嘗試執行相對導入。錯誤訊息「ImportError: Cannot import name 'config'」表示在相對路徑中找不到配置模組。
解決方案
要解決此問題,您可以透過將__init__.py 檔案新增至與test.py 相同的目錄中,使test.py 成為包的一部分。或者,您可以使用絕對導入,如下所示:
<code class="python">import config</code>
這將在 sys.path 中查找 config.py,確保導入按預期工作。
以上是以下是一些適合文章內容的基於問題的標題: * \“ModuleNotFoundError:沒有名為 \'x\' 的模組 - 為什麼我在 Python 3 中收到此錯誤?\” * \「為什麼我不能導入的詳細內容。更多資訊請關注PHP中文網其他相關文章!