Python 中的相對導入
了解Python 中的相對導入對於避免「嘗試在非包裝中進行相對導入錯誤至關重要。
腳本與腳本模組
一個關鍵的區別來自於 Python 檔案的載入方法。當直接作為腳本執行時,其名稱設定為 __main__。相反,如果導入,其名稱包含套件資訊。
命名約定
例如,若匯入 package/subpackage1/moduleX.py 中的 moduleX,則其名稱變成 package.subpackage1.moduleX。但是,如果直接運行,則其名稱為 __main__。
相對導入
相對導入依賴模組的名稱來決定其包層次結構。名稱中不包含點的模組不會被視為套件的一部分。
錯誤原因
在名稱表明其名稱的模組中嘗試相對導入時會發生錯誤re 不在包中(即,它們的名稱缺少點)。這包括腳本(因為 main 沒有點)和直接從目前目錄載入的模組(Python 將目前目錄新增至其搜尋路徑)。
解決方案
註解
以上是如何避免Python中「嘗試在非套件中進行相對導入」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!