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

Jupyter跨文件夹调用py文件自定义函数出现AttributeError怎么解决

可行解决方法

1. 优先解决模块缓存问题

Jupyter 内核导入外部.py文件后默认会缓存模块内容,后续你修改DEA_functions.py的代码后内核不会自动同步更新,就会出现函数已定义但调用报错的情况。
你可以在导入模块的代码前先添加两行魔法命令,强制内核重载修改过的模块,同时调整路径插入优先级避免同名模块干扰:

%load_ext autoreload
%autoreload 2
import sys
sys.path.insert(0, "../")
import Src.DEA_functions as DEA

修改后重启Jupyter内核,重新运行所有单元格测试即可。

2. 检查文件命名与包配置

  • 确认文件名大小写完全匹配:你目录里的导入文件是importing_modules.py,但你写的导入代码是from Src.Importing_modules import *,首字母大写不一致,Windows系统不区分大小写,但Linux/Mac系统会报错。
  • 确认Src文件夹下的初始化文件命名为__init__.py(前后各两个下划线),如果少了下划线会导致Src无法被识别为Python包。

3. 校验模块导入路径

如果上述方法无效,可以运行代码确认你导入的DEA_functions模块实际路径,避免误导入了其他位置的同名文件:

import Src.DEA_functions as DEA
print(DEA.__file__)

如果输出的路径不是你项目里的Data_Analytics/Src/DEA_functions.py,可以把相对路径替换为项目根目录的绝对路径:

import sys
# 替换为你本地Data_Analytics文件夹的实际绝对路径
sys.path.insert(0, "C:/xxx/xxx/Data_Analytics")

4. 检查函数定义逻辑

确认DEA_functions.py中getIndexes函数的缩进,保证它是模块的顶级对象,没有被嵌套在其他函数、类、条件判断语句块中,嵌套定义的函数无法通过模块直接调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:36:05