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

Jupyter Notebook跨文件导入类失败,报ModuleNotFoundError求助

问题:Jupyter Notebook间导入类提示ModuleNotFoundError

我有一个名为rentalcar.ipynb的文件,其中包含一个名为rentalcar的类。尝试在另一个文件customer.ipynb中导入该类时,出现如下错误:

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 2
      1 from datetime import datetime
----> 2 from rentalcar import rentalcar
      4 class Customer:
      5         def __init__(self, name, rental_company):

ModuleNotFoundError: No module named 'rentalcar'

请问有什么解决方法?或者是否需要转为.py文件在Python shell中运行才能正常执行?


解决方法

不需要必须转成.py文件在Python Shell运行,以下几种方案可解决Notebook间的导入问题:

  • 方法1:使用import_ipynb库直接导入Notebook

    1. 先安装依赖库:在终端或Notebook单元格中执行
      pip install import-ipynb
      
    2. 修改customer.ipynb中的导入代码:
      from datetime import datetime
      import import_ipynb
      from rentalcar import rentalcar
      

    注意两个Notebook文件需处于同一目录下。

  • 方法2:将Notebook转为.py文件
    手动转换:打开rentalcar.ipynb,点击菜单栏「File」→「Download as」→「Python (.py)」,生成rentalcar.py文件后放在customer.ipynb同目录下,即可正常使用原导入语句。
    命令行自动转换:执行以下命令生成对应的.py文件

    jupyter nbconvert --to python rentalcar.ipynb
    
  • 方法3:添加当前目录到Python模块搜索路径
    在customer.ipynb的导入代码前添加以下内容,将当前Notebook所在目录加入Python的搜索路径:

    import sys
    from pathlib import Path
    sys.path.append(str(Path().absolute()))
    
    from datetime import datetime
    from rentalcar import rentalcar
    

    该方案无需额外安装库,适合临时场景使用。


内容的提问来源于stack exchange,提问作者Nadin Martini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 01:10:04