模組的迴圈匯入問題及模組的路徑搜尋

2022-02-26 17:43:23 字數 1041 閱讀 2585

兩個模組互相匯入,就形成了匯入迴圈,比如下面的這種情況

print

(x)from m2 import

xy = 20

m1.py

print

(y)from m1 import

yx = 1

m2.py

如果執行m1.py,則會產生`importerror: cannot import name 'y`

如果執行m2.py,則會產生`importerror: cannot import name 'x`

所以根本原因是:在匯入的時候,m1需要訪問m2的變數y,但是y沒有初始化完成

所以解決方法有兩個:

y初始化完成後,才讓m1.py訪問m2.py的變數

1

print

(x)2

3def

func1():

4from m2 importx5

print

(x)6

7 y =20

m1.py

1

print

(y)2

3def

func1():

4from m1 importy5

print

(y)6

7 x = 1

m2.py

1

print

(x)2

3 y = 20

4from m2 import x

m1.py

1

print

(y)2

3 x = 1

4from m1 import y

m2.py

先從記憶體中已經匯入的模組中尋找

內建的模組

自定製的函式中找

環境變數sys.path中找

主要記住未來專案的執行檔案一定要弄乙個環境變數

Python 模組匯入路徑

當使用python用import匯入模組時我們不需要在模組前面新增路徑,是因為python有預設的搜尋路徑,這一路徑可以通過呼叫system模組來顯示和修改。in 1 import sys in 2 sys.path out 2 home frank anaconda3 bin home frank...

Python 1 2模組的迴圈匯入問題

run.py檔案 importm1 第一次匯入 驗證解決方案一 正在匯入m1 正在匯入m2 print m1.x print m1.y 驗證解決方案二 importm1 第一次匯入 正在匯入m1 print m1.x print m1.f1 m1.f1 正在匯入m2 m1.f1 y m2 m2.f2...

Python匯入模組import的路徑

可以使用 import sys print sys.path 檢視import的預設搜尋路徑,使用import要匯入的檔案,必須要求要在這個預設路徑下。import sys print sys.path 假如要匯入的檔案,不在這些預設路徑下的話,那麼就要使用 from 路徑 import 模組 這樣...