python 絕對匯入和相對匯入

2021-09-29 03:00:32 字數 466 閱讀 7407

今天在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中的匯入,尤其是絕對和相對匯入。在本教程中,你將了解兩者之間的差異,以及它們的利弊。我們立即開始吧!你需要...