Python Notebook出现ModuleNotFoundError:无法导入指定模块求助
模块导入失败问题
文件夹结构
\__app \____init__.py \__models \____init__.py \__claims \____init__.py \__common.py \__notebooks \__main.ipynb
尝试的导入代码
from app.models.claims.common import Box, Vda
报错信息
ModuleNotFoundError Traceback (most recent call last) Cell In[1], line 3 1 from datetime import UTC, datetime ----> 3 from app.models.claims.common import Box, Vda
核心问题
为什么无法成功导入目标模块?
原因及解决办法
根本原因:Python的模块搜索路径默认包含当前工作目录,你运行
main.ipynb时,工作目录是notebooks/,而app目录在它的上级目录,Python找不到这个路径下的模块。解决办法1:手动添加根目录到搜索路径
在导入代码前,先把app所在的上级目录加入Python的搜索路径:import sys from pathlib import Path # 获取notebooks目录的上级目录(即app所在的根目录) root_dir = Path.cwd().parent sys.path.append(str(root_dir)) # 之后就能正常导入 from app.models.claims.common import Box, Vda解决办法2:切换工作目录到根目录
在Notebook里先切换到app所在的根目录,再执行导入:import os os.chdir('../') # 从notebooks目录切换到上级根目录 from app.models.claims.common import Box, Vda注意:相对导入(比如
from ..app.models...)只适用于包内部的模块调用,Notebook作为独立脚本运行时不适用,优先用前两种方法。
内容的提问来源于stack exchange,提问作者asant-leitha
相关产品推荐
相关产品推荐

