PyCharm中仅Jupyter Notebook出现ModuleNotFoundError排查求助
Python模块导入问题排查建议
问题现象
在PyCharm 22.3版本的项目中,同目录下的Python脚本script_which_calls_from_my_lib.py执行from module_1.my_lib import method_x可正常导入模块,但Jupyter Notebook文件notebook_which_calls_from_my_lib.ipynb执行相同语句时,抛出ModuleNotFoundError: No module named 'module_1'错误。该问题仅出现在当前项目,新建项目复现最小示例可正常运行。
项目目录结构
- module_1 --- __init__.py # 注:原描述中的__inte__.py应为笔误,修正为标准模块初始化文件 --- my_lib.py - module_2 --- __init__.py --- script_which_calls_from_my_lib.py --- notebook_which_calls_from_my_lib.ipynb
已尝试的操作
- 删除并重建仅安装Jupyter的虚拟环境(venv)
- 重启PyCharm
排查建议
- 检查Notebook的Python解释器匹配性:打开Notebook后,确认右上角的Python解释器与脚本使用的是同一虚拟环境,若不一致则切换并重启Notebook内核。
- 手动添加项目根目录到Python路径:在Notebook首个代码单元格执行以下代码,将包含
module_1的项目根目录加入Python路径,再尝试导入:import sys from pathlib import Path # 自动获取项目根目录,若路径不正确可替换为绝对路径 project_root = Path.cwd().parent sys.path.append(str(project_root)) - 确认项目根目录的Sources Root标记:在PyCharm项目视图中右键点击项目根目录,选择
Mark Directory as->Sources Root,标记后重启Notebook内核。 - 验证并切换Notebook工作目录:执行以下代码查看当前工作目录,若不是项目根目录则切换:
import os print(os.getcwd()) # 切换到项目根目录 os.chdir("/path/to/your/project/root") - 尝试降级PyCharm版本:鉴于怀疑是PyCharm 22.3版本的已知问题,可降级到22.2.x或更早稳定版本,验证问题是否解决。
内容的提问来源于stack exchange,提问作者Azim
相关产品推荐
相关产品推荐

