python踩坑系列之导入包时下划红线及报错“No module named”问题
python踩坑系列之导入包时下划红线及报错“No module named”问题
使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下(fileshandle)导入此包时,包名和模块名下都有红色下划线,运行程序报错 “ ModuleNotFoundError: No module named 'commontool' ”,针对此问题的几种解决办法:
方法一:
由于包和文件夹是有区别的,文件夹在创建时只会生成一个文件夹,不可以被导入。包在创建的时候会自动生成一个“ __init__.py ”的文件,这个文件定义了包的属性和方法,所以包是可以被导入的。也可以在创建文件后,手动新建一个“ __init__.py ”文件。在包下“ __init__.py ”文件文件可以是空,但必须存在。所以要被导入,前提是类型必须是包类型。
方法二:
在 __init__.py文件中添加变量,如下:
__all__ = ["module_1","module_2","module_3"]
module为要该包下可以被导入的模块。
方法三:
在 setting --> Project Structure 下将要被导入的设置为Sources
方法四:
1>如果要导入的包是在打开路径的子目录下,则可以直接进行导入,如下图:
2>如果要导入的包是在项目的子目录的子目录下,也就是我这次遇到的情况,则要将包的父目录设置成Sources。