如何解決Python的「嘗試超出頂級套件的相對導入」錯誤?

Barbara Streisand
發布: 2024-11-18 07:35:02
原創
587 人瀏覽過

How to Resolve Python's

Python 相對導入錯誤:排除「嘗試在頂層套件之外進行相對導入」

在Python 中,相對導入允許您引用模組在相對於目前目錄的包內。但是,嘗試超出頂級包的相對導入可能會導致錯誤“ValueError:嘗試超出頂級包的相對導入。”

請考慮以下包結構:

package/
   __init__.py
   A/
      __init__.py
      foo.py
   test_A/
      __init__.py
      test.py
登入後複製

使用python -m test_A.test 在套件目錄中執行test.py 時,遇到上述錯誤。原因是 Python 不保留 test_A.test 所在頂層套件的資訊。

當使用 from ..A import foo 時,Python 會嘗試存取與載入位置同等級的目錄。但是,在這種情況下,不存在同級目錄的概念,因為 package 不被識別為套件。

相反,執行 python -m package.test_A.test 可以正確解析相對導入,因為 Python 可以識別套件作為頂級套件並導航其子目錄 test_A。

但是,Python 無法將目前工作目錄識別為套件仍然是一個謎。儘管它很實用,但在嘗試從頂級目錄進行相對導入時,這種疏忽可能會導致錯誤。

以上是如何解決Python的「嘗試超出頂級套件的相對導入」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板