模組匯入的路徑範圍
由sys模組的sys.path方法來規定,sys.path返回的資料型別是列表。
案例import sys
print(sys.path)
輸出:['e:\\workspace\\importtest', 'e:\\workspace\\importtest', 'e:\\xuegod\\python35.zip', 'e:\\xuegod\\dlls', 'e:\\xuegod\\lib', 'e:\\xuegod', 'e:\\xuegod\\lib\\site-packages']
列表可以修改、我們匯入的範圍也可以通過修改sys.path這個列表獲得暫時的修改。
2、指令碼和模組不要同名
列表是有序的,當搜尋的過程當中,在第乙個路徑下搜尋到了,就停止搜尋。而且 sys.path第一 個路徑是指令碼的當前路徑,所以禁止把自己的指令碼命名成模組的名稱。
案例:把test01.py 改名為os.py,在test02.py中進行匯入。
improt os
os.print_func(18)
執行結果: attributeerror: module 'os' has no attribute 'path'
3、.pyc臨時檔案
python匯入模組,被匯入的指令碼在第一次被匯入之後會自動形成乙個.pyc臨時檔案之後,再次被匯入時,實際上匯入的是這個.pyc的臨時檔案,發生這樣的錯誤之後,除了要修改檔名稱還要把當前目錄下同名的.pyc 檔案刪除掉(適用於python2,python3 去除,更加靈活……)。
mysqldb.py
import mysqldb
connect = mysqldb.connect()
attributeerror:mysqldb has no attribute"connect"
4、reload() 函式
reload函式是使用模組名稱,而不是變數名稱,也就是說當你把它改變了名稱,它也是載入原來的 名稱。
當使用reload時,這個模組會被重新編譯,新的模組替換原來的模組。如果之前從這個模組建立的例項仍然使用舊的模組實現。
特別是使用from-import語句載入的名稱,也不會被更新。
reload後還是用原來的記憶體位址;
Python 模組匯入路徑
當使用python用import匯入模組時我們不需要在模組前面新增路徑,是因為python有預設的搜尋路徑,這一路徑可以通過呼叫system模組來顯示和修改。in 1 import sys in 2 sys.path out 2 home frank anaconda3 bin home frank...
Python匯入模組import的路徑
可以使用 import sys print sys.path 檢視import的預設搜尋路徑,使用import要匯入的檔案,必須要求要在這個預設路徑下。import sys print sys.path 假如要匯入的檔案,不在這些預設路徑下的話,那麼就要使用 from 路徑 import 模組 這樣...
python 模組 匯入與搜尋路徑
示例 參考python 的 from 語句讓你從模組中匯入乙個指定的部分到當前命名空間中。當你匯入乙個模組,python 解析器對模組位置的搜尋順序是 專案結構 all config settings.py src init py config settings.py db init py data...