問題定義:
嘗試從Python 文件進行相對導入時以頂級腳本執行(例如,透過輸入python myfile.py),遇到錯誤訊息: 「嘗試在非套件中進行相對導入。」
理解模組與腳本:
關鍵區別在於 Python 在載入時如何解釋檔案。當直接作為腳本運行時,文件的名稱為“__main__”。當從另一個檔案作為模組導入時,其名稱反映了其套件結構(例如“package.subpackage.module”)。
相對導入限制:
相對導入依賴模組的全名來決定其在包層次結構中的位置。如果模組的名稱不包含套件資訊(例如「__main__」),則相對導入會失敗,因為該模組不被視為套件的一部分。
錯誤說明:
當模組的全名缺少點時,表示沒有套件關聯,Python將其解釋為獨立腳本,並且相對導入無效。在下列情況下會發生此錯誤:
解決方案:
附加說明:
以上是為什麼直接執行Python腳本時相對導入會失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!