在寫乙個稍微大型的python工具或者專案的時候,不可避免的需要大量的匯入自定義的模組以及系統模組,由於多層次的目錄結構,使得新手再匯入自定義模組的經常出現「modulenotfounderror: no module named異常」,既找不到該模組的問題基礎概念
模組
模組一般情況下是指乙個.py的檔案,其他可作為module的檔案型別還有".pyo"、".pyc"、".pyd"、".so"、".dll",但python初學者幾乎用不到,module 可看作乙個工具類,可共用或者隱藏**細節,將相關**放置在乙個module以便讓**更好用、易懂,讓coder重點放在高層邏輯上
包
為了避免模名塊衝突,python引入了按目錄組織模組的方法,稱之為 包(package)。包 是含有python模組的資料夾。
每個包的資料夾下按照規範應當存在乙個__init__.py的檔案,用來表示該資料夾是乙個包。
init.py檔案其中用以組織包,控制著包的匯入行為。
一般來講不要在__init__.py檔案中寫程式,保證該檔案的簡介,若要使用 from package import *時,需要在__init__.py中定義__all__變數,匯入時會dict中所有檔案匯入。
__all__ =['filea_name','fileb_name']
模組檢索過程以及解決辦法
當使用 import 語句匯入模組後,python會按照以下順序查詢指定的模組檔案
上面所說的所有目錄,均被儲存在sys.path中,既sys.path中的路徑會被python進行檢索,以下是我本機的python的sys.path
因為python會在sys.path中的路徑中檢索相應模組,因此解決模組找不到的問題可以從以下幾個方面解決問題。
python中匯入模組
在程式開發的過程中,隨著 量越來越大,我們可以把完成某個功能的函式進行分組,放在乙個.py檔案裡邊,這樣的乙個.py檔案稱為乙個module,這樣做最大的好處就是提高 的可重用性和可維護性,新的開發可以呼叫原來模組的函式,我們經常用的python內建模組和第三方類庫就屬於module。簡單來說,乙個...
python中匯入模組的注意點
1.import 和 from import 的區別 import module匯入模組 語句執行完後會建立乙個新的命名空間,在該命名空間中執行相應的函式。執行時,需要的變數 函式和類名前需要加字首 模組名.from module import 匯入模組 是將模組的定義匯入到當前的命名空間,此時不需...
pycharm中匯入自寫模組時,模組下出現紅線
問題描述 在pycharm中匯入自己寫的模組時,得不到智慧型提示,並在模組名下出現下紅線,但是 可以執行,錯誤提示為下圖所示 原因 出現 以上情況,是因為檔案目錄設定的問題,pycharm中的最上層資料夾是專案資料夾,在專案中導包預設是從這個目錄下尋找,當在其中再次建立目錄,目錄內的py檔案如果要匯...