今天在import自定義模組時遇到問題,在此記錄一下。
假設檔案結構如下:
----project
main.py
----utils
a.py
b.py
我想要實現乙個順序匯入main<--a<--b,即
main.py: from utils import a
a.py: import b
然而在a.py報錯找不到b模組。因為從根節點位置(由sys.path中的路徑決定)無法找到utils.b。
所以一種解決辦法是使用相對匯入,修改a.py為 from . import b。
這種方法的問題是在主目錄下無法直接執行utils/a.py
所以直接使用第二種方法絕對匯入,在a.py中將子目錄新增到sys.path中:
import sys, os
import b
即可解決問題。
python之絕對匯入和相對匯入
這兩個概念是相對於包內匯入而言的。包內匯入即是包內的模組匯入包內部的模組。當前資料夾下 環境變數pythonpaht中 sys.path中 匯入當前模組同級別的模組 匯入當前模組同級別包中的模組 不能匯入具體的 變數 函式 型別 import匯入 sub package init py tools....
python包的相對匯入和絕對匯入
絕對匯入 從要匯入檔案的頂級包開始寫起 print package 列印出該檔案所在包的路徑以下面所示專案檔案結構為例 頂級包一般是專案資料夾中最上層的包,比如說a,b中的模組的頂級包就分別是a,b a1中 print package a b1中 print package b bb1中 print...
Python中的絕對匯入和相對匯入
如果你做過有多個檔案的python專案,那麼你一定用過import語句。即使是對於有多個專案的python支持者來說,import也會讓人困惑!你可能正閱讀本文,因為希望更深入地了解python中的匯入,尤其是絕對和相對匯入。在本教程中,你將了解兩者之間的差異,以及它們的利弊。我們立即開始吧!你需要...