You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Notebook导入错误与相对导入问题求解

Jupyter Notebook导入问题解决方案

问题根源

  1. 第一个报错TypeError: the 'package' argument is required to perform a relative import for './deeplearning':多半是Jupyter当前工作目录和文件实际所在目录不匹配,导致加载deeplearning.mplstyle或导入lab_utils_uni时路径出错;也可能是lab_utils_uni.py内部用了相对路径引用资源,却没在包环境下运行。
  2. 第二个报错ImportError: attempted relative import with no known parent package:Jupyter直接运行Notebook时,脚本不会被识别为Python包的一部分,所以用.开头的相对导入语法无效。

可行解决办法

办法1:对齐Jupyter工作目录与文件目录

  • 启动Jupyter时直接从Cost function.ipynb所在的文件夹打开,这样工作目录默认就是文件目录,无需修改代码。
  • 若已打开Notebook,可通过代码切换工作目录:
import os
# 查看当前工作目录
print(os.getcwd())
# 替换成你的Notebook实际存放路径,切换过去
os.chdir("/你/的/文件/所在/路径")

办法2:用绝对导入(推荐)

保持最初的代码不变:

import numpy as np
import matplotlib.pyplot as plt
from lab_utils_uni import plt_intuition
plt.style.use('deeplearning.mplstyle')

只要工作目录和文件目录一致,这个写法就能正常导入模块和加载样式。

办法3:手动添加路径到Python搜索范围

如果没法切换工作目录,就把文件所在目录加到Python的模块搜索路径里:

import sys
import os
# 获取当前Notebook的目录路径
notebook_path = os.path.dirname(os.path.abspath("__file__"))
# 把路径加入sys.path
if notebook_path not in sys.path:
    sys.path.append(notebook_path)

# 之后正常导入和加载样式
import numpy as np
import matplotlib.pyplot as plt
from lab_utils_uni import plt_intuition
plt.style.use(os.path.join(notebook_path, 'deeplearning.mplstyle'))

重要提醒

  • 别在Jupyter Notebook里用.开头的相对导入,这种写法只适用于作为包结构一部分的普通Python脚本。
  • 确保lab_utils_uni.py、deeplearning.mplstyle和Cost function.ipynb在同一目录下,或者通过路径配置让Python能定位到它们。

内容的提问来源于stack exchange,提问作者Trieu Vu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:43:12