from import 导入时找不到module的解决办法(Python模块包中_init_.py文件的作用)
文章目錄
- 背景
- 正文
- Ⅰ、報錯信息
- Ⅱ、問題解決
- Ⅲ、問題分析
- Ⅳ、_init_.py文件作用
背景
最近在使用Pycharm開發(fā)python腳本時,遇到這樣一個現(xiàn)象:打開別人給的工程,環(huán)境配置都沒有問題,前一天晚上還能正常執(zhí)行腳本,但第二天早上上班的時候,再次打開工程執(zhí)行腳本竟然執(zhí)行不了了。
正文
Ⅰ、報錯信息
報錯信息就是找不到本地導入的模塊。凡是本地的模塊被引入到其他腳本文件中都讀取不到。
Ⅱ、問題解決
在被引入.py文件的所在package下新建一個_init_.py文件(from 后面每一級package下都需要建立這個文件),文件里面的內容如下:
比如我的一個testMain.py文件需要引入的包如下:
那么我需要在from后面的每一級package下都要建立_init_.py文件。如圖所示:
Ⅲ、問題分析
執(zhí)行python腳本時,from import 的模塊沒有被加載進來,找不到module,根本原因就是該工程的路徑沒有識別到,當前工作目錄沒有被加載到工程中。
Ⅳ、init.py文件作用
其實如果我們新建一個python類型的包時(不僅僅是Directory)會有一個默認的空_init_.py文件,
在python模塊的每一個包中,都有一個__init__.py文件(這個文件定義了包的屬性和方法),然后是一些模塊文件和子目錄,假如子目錄中也有 init.py 那么它就是這個包的子包了。當你將一個包作為模塊導入的時候,實際上導入了它的 init_.py 文件。
一個包是一個帶有特殊文件 init.py 的目錄。init.py 文件定義了包的屬性和方法。其實它可以什么也不定義;可以只是一個空文件,但是必須存在。如果 init.py 不存在,這個目錄就僅僅是一個目錄,而不是一個包,它就不能被導入或者包含其它的模塊和嵌套包。
總結
以上是生活随笔為你收集整理的from import 导入时找不到module的解决办法(Python模块包中_init_.py文件的作用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个实例告诉你Python中关于 if
- 下一篇: python 中各种下划线的神操作:_、