首頁 > 後端開發 > Python教學 > 如何在 Python 套件中成功執行相對導入?

如何在 Python 套件中成功執行相對導入?

Patricia Arquette
發布: 2024-12-16 18:00:33
原創
779 人瀏覽過

How Can I Successfully Perform Relative Imports in Python Packages?

Python 中的相對導入

在 Python 中,從包內導入模組可能是一項棘手的任務。考慮以下目錄結構:

app/
   __init__.py
   sub1/
      __init__.py
      mod1.py
   sub2/
      __init__.py
      mod2.py
登入後複製

假設您正在處理 mod1.py 並需要從 mod2.py 匯入某些內容。您可以嘗試:

from ..sub2 import mod2
登入後複製

但是,這會導致「嘗試在非套件中進行相對導入」錯誤。解決方案在於,Python 將作為 __main__ 運行的模組(例如 python mod1.py)解釋為頂級模組,無論其檔案系統位置如何。

要啟用相對導入,導入模組不得以 __main__ 運作。這可以透過以套件作為主模組來執行解釋器來完成:

python -m app.sub1.mod1
登入後複製

或者,您可以使用__package__ 屬性手動指定父包:

import sys
sys.path.insert(0, '..')
from sub2.mod2 import MyClass
登入後複製

這方法作業系統路徑,但它不需要將模組作為__main__ 運行。

但是,對於要在其中工作的相對導入子包中,確保每個目錄中存在 __init__.py 檔案非常重要。這些檔案充當套件標記,並使 __package__ 屬性能夠引用包含的套件。

以上是如何在 Python 套件中成功執行相對導入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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