如何在Jupyter Notebook中导入自定义包内的类并解决导入报错
问题排查与解决方法
1. 确认Jupyter当前工作目录
Jupyter运行时默认工作目录不一定是你的项目根目录,先执行下方代码查看当前工作目录:
import os print(os.getcwd())
如果输出的路径不包含my_package_directory文件夹,需要手动切换到你存放my_file.ipynb和my_package_directory的项目根目录,示例如下:
# 路径替换为你自己的项目根目录实际路径 os.chdir("/Users/your_name/projects/your_project/")
切换完成后再执行你的导入代码即可。
2. 检查__init__.py配置
my_package_directory下的空__init__.py本身可以正常识别包,如果要简化导入规则,可以在__init__.py中添加导出声明:
from .test import Test __all__ = ["Test"]
配置完成后也可以直接用from my_package_directory import Test导入类。
3. 清理模块缓存
如果之前修改过test.py内容,Python可能缓存了旧版本的模块导致导入失败,执行下方代码重载模块后再导入即可:
import importlib import my_package_directory.test importlib.reload(my_package_directory.test) from my_package_directory.test import Test
4. 临时添加搜索路径(备选方案)
如果切换工作目录不生效,可以直接把项目根目录添加到Python的导入搜索路径中:
import sys # 路径替换为你自己的项目根目录实际路径 sys.path.append("/Users/your_name/projects/your_project/") from my_package_directory.test import Test
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

