模塊的查找順序是:內存中已經加載的模塊->內置模塊->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
附圖:

