Python中的相對導入:理解“非包”錯誤
普遍存在的“嘗試非包中的相對導入”問題源於對腳本和模組之間的區別以及它們各自的行為的誤解import.
腳本與模組
直接執行Python文件時,它充當頂級腳本,並被分配名稱“__main__”。匯入時,檔案名稱變成包名後面跟著檔案名,以點分隔。
相對導入和包
相對導入利用模組的名稱來定位其在包層次結構中的位置。但是,如果模組的名稱不包含套件資訊(例如「__main__」),則無論其實際檔案位置為何,都會像頂層模組一樣解析相對導入。
“非包”錯誤
當在不被識別為包的一部分的模組中嘗試相對導入時,會發生錯誤。當模組的名稱缺少點時,可能會發生這種情況,表示其非包狀態。
解
要解決這個錯誤,請考慮以下方法:
確保套件目錄可存取在模組搜尋路徑 (sys.path) 中。 從 Python 2.6 開始,模組用於套件解析的「名稱」包括
package以上是為什麼Python會拋出「非套件中的相對導入」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!