使用相對路徑導入模組可能會在使用Python 套件結構時帶來挑戰。其中一個問題是嘗試跨套件目錄導入模組時遇到的「嘗試在非套件中相對導入」錯誤,儘管存在 __init__.py 檔案。
要了解根本原因,掌握這一點至關重要Python 的導入機制如何運作。導入通常是相對於當前檔案的 name 執行的。但是,當直接執行檔案時,它會採用“__main__”名稱而不是通常的名稱。這種特性會破壞相對導入,從而導致上述錯誤。
不要直接執行程式碼,請考慮使用 -m 選項,它允許您將模組視為腳本並為其分配適當的名稱。例如,要使用此方法執行 core_test.py,請輸入以下命令:
python -m pkg.tests.core_test
或者,您可以使用 package 屬性在模組本身內指定套件名稱。即使檔案直接作為腳本執行,此技術也可確保相對導入正常運作。有關此方法的更多詳細信息,請參閱 Python 增強提案 366 (PEP-366)。
以上是如何修復 Python 中的「嘗試在非套件中進行相對導入」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!