Python-模塊的搜索路徑


模塊的查找順序是:內存中已經加載的模塊->內置模塊->sys.path路徑(導模塊的環境變量)中包含的模塊(如:time.py文件)

內置模塊:

import time,sys
print(sys)

<module 'sys' (built-in)>

創建一個time.py

print('from time')

然后

import time
time.sleep(3)

得到的結果是:執行的是內置time函數的功能。

# 查看執行文件的環境變量
import
sys print(sys.path) ['/Users/gxqlcx/PycharmProjects/youngboy/week05', '/Users/gxqlcx/PycharmProjects/youngboy', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages']

首先是執行文件的當前目錄;以下面為主,其實沒有上一級youngboy目錄,pycharm的問題,所以建議用cmd看。

clouddeMacBook-Pro:~ gxqlcx$ python3 /Users/gxqlcx/PycharmProjects/youngboy/week05/6模塊的搜索路徑.py
['/Users/gxqlcx/PycharmProjects/youngboy/week05', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages']
clouddeMacBook-Pro:~ gxqlcx$ 

按照這個路徑依次找下去,越靠前越優先。這里的.zip可以看成和文件夾一樣的目錄;

只要模塊文件放在上面任意路徑,都可以import加載到內存中,使用它。

如果imprt a文件夾下的m.py呢?

將a的目錄加載到syspath中:

import sys
sys.path.append(r'C:\Users\Administrator\PycharmProjects\python19期\day5\a')

再執行,就可以調用m.py內部的代碼。

也可以insert,放置在最前,優先加載。

還有一個更簡單的方法:

from a import m

a可以找到,因為它和執行文件在同一目錄下,順着a就可以找到里面的m.py

 附圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM