Python项目导入模块报错:custom文件夹已加__init__.py仍无法导入类
导入错误解决方案
- 调整导入语句写法
同包内文件互相导入优先使用相对导入,在operators.py中修改导入语句为:
如果你习惯用绝对导入,需要保证运行脚本时的工作目录为from .hooks import 你要导入的目标类名custom文件夹的上级目录,导入语句写为:from custom.hooks import 你要导入的目标类名 - 检查
__init__.py配置
确认该文件直接放在custom文件夹的根目录下,文件名前后均为两个下划线,没有拼写错误(正确写法为__init__.py)。 - 修正运行方式或调整模块搜索路径
如果你直接执行python operators.py作为入口,Python会将operators.py所在的目录识别为顶级路径,无法识别custom包层级。有两种解决方式:- 到
custom文件夹的上级目录执行启动命令:
python -m custom.operators- 在
operators.py开头添加路径配置代码,将上级目录加入Python搜索路径:
import os import sys sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - 到
- 检查拼写规则
确认hooks.py文件名、你要导入的类名没有拼写错误,同时注意Python大小写敏感,类名大小写需要和定义时完全匹配。
内容的提问来源于stack exchange,提问作者Marco Gelli
相关产品推荐
相关产品推荐

