模組的搜尋路徑

2022-05-07 04:54:11 字數 1885 閱讀 3002

模組其實就是乙個檔案,如果要執行檔案,首先就需要找到模組的路徑(某個資料夾)。如果模組的檔案路徑和執行檔案不在同乙個檔案目錄下,我們就需要指定模組的路徑。

模組的搜尋路徑指的就是在匯入模組時需要檢索的資料夾。

匯入模組時查詢模組的順序是:

import sys

print(f"sys.path: ")

'''['/users/mac/desktop/video/python/day16',

'/users/mac/desktop/video/python',

'''

強調:sys.path的第乙個值是當前執行檔案的所在的資料夾

如果我們在執行run.py檔案的時候,快速刪除mmm.py檔案,我們會發現檔案會繼續執行,而不會報錯,因為mmm已經被匯入記憶體當中。如果我們再一次執行run.py時會報錯,因為mmm.py已經被刪除了。

# mmm.py

def f1():

print('from mmm.py f1')

# run.py

import time

import mmm

time.sleep(10)

import mmm

mmm.f1() # from mmm.py f1

# time.py

print('from time.py')

# run.py

import time

print(time) #

如果mmm.py在/users/mac/desktop/video/python路徑下,而執行檔案路徑為/users/mac/desktop/video/python/day16,如果普通匯入一定會報錯,我們可以把/users/mac/desktop/video/python新增到環境變數sys.path中,防止報錯。

# run.py

import sys

print(sys.path)

import mmm

mmm.f1()

二、搜尋路徑以執行檔案為準

假設我們有上述的目錄結構的檔案,檔案內**分別是:

# m1.py

import sys

print('模組m1中檢視的結果',sys.path)

# import m2

from dir1 import m2

m2.f2()

# m2.py

import sys

print(sys.path)

def f2():

print('from f2')

# run.py

import sys

print('執行檔案檢視的結果:',sys.path)

from dir1 import m1

其中run.py檔案的執行路徑是/users/mac/desktop/video/python/day16/模組搜尋路徑練習,如果我們在m1.py中直接使用import m2匯入m2會報錯,而使用from dir1 import m2匯入m2則會成功,因為搜尋路徑以執行檔案為準,dir1和run.py是同目錄下的,因此run.py的環境變數能找到dir1;而m2和run.py不是同目錄下的,因此run.py的環境變數無法直接找到m2。

模組的使用,模組的搜尋路徑

模組的使用 1 什麼是模組 模組是一系列功能的集合體 常見的模組形式 自定義模組 第三方模組 內建模組 1 乙個module.py檔案就是乙個模組,檔名是module.py,而模組名是module 2 乙個包含有 init py檔案的資料夾也是模組 3 已被編譯為共享庫或dll的c或c 擴充套件 4...

python import模組的搜尋路徑

當在py 中import所依賴的模組時,python是從 找到這些模組呢,即模組的搜尋路徑是啥?預設情況下,python直譯器會搜尋當前目錄 所有已安裝的內建模組和第三方模組,搜尋路徑存放在sys模組的path變數中 import sys sys.path c windows system32 py...

python 模組搜尋路徑

當你匯入乙個模組,python 解析器對模組位置的搜尋順序是 1 當前目錄 2 如果不在當前目錄,python 則搜尋在 shell 變數 pythonpath 下的每個目錄。3 如果都找不到,python會檢視預設路徑。unix下,預設路徑一般為 usr local lib python 模組搜尋...