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

如何让Python报错信息显示引发错误的__init__()所在文件位置

解决方法:让报错显示__init__()的文件位置,以及修复参数错误

首先,咱们先解决你最关心的让报错显示__init__()所在文件位置的问题,再处理根源的参数错误。

一、让Python打印完整的错误调用栈

你当前看到的traceback只显示到自己的nn_script.py第55行,是因为默认traceback可能没有展开深层调用。可以通过两种方式让它显示完整的栈信息:

方法1:在代码中添加异常捕获,手动打印完整栈

在你调用ImageDataGenerator的代码块周围包裹try-except,用traceback模块打印全部错误信息:

import traceback
from tensorflow.keras.preprocessing.image import ImageDataGenerator

# 假设这是你原来第55行附近的代码
try:
    datagen = ImageDataGenerator(zca_whitening_fast=True)  # 你的调用代码
except TypeError as e:
    print("完整错误追踪信息:")
    traceback.print_exc()

运行后,你会看到包含__init__()方法所在文件和行号的完整调用栈,直接定位到那个类的定义位置。

方法2:取消Python的traceback显示限制

有时候Python会截断过长的traceback,你可以在代码开头添加一行,取消限制:

import sys
sys.tracebacklimit = 0  # 0表示不限制,显示所有层级的调用

再运行脚本,就能看到完整的错误栈了。


二、修复unexpected keyword argument的根源问题

从你的描述来看,你修改了keras_preprocessing和keras下的文件,但你导入的是tensorflow.keras.preprocessing.image.ImageDataGenerator——这个类其实是属于TensorFlow内置的Keras实现,和你修改的那两个文件不是同一个!

步骤1:找到真正的ImageDataGenerator文件路径

先在代码里打印这个类的实际位置:

from tensorflow.keras.preprocessing.image import ImageDataGenerator
print("类所在模块:", ImageDataGenerator.__module__)
print("类所在文件:", ImageDataGenerator.__file__)

运行后会输出类似这样的路径:

类所在模块: tensorflow.python.keras.preprocessing.image
类所在文件: /home/user/.local/lib/python3.6/site-packages/tensorflow/python/keras/preprocessing/image.py

你需要去修改这个文件里的ImageDataGenerator的__init__()方法,添加zca_whitening_fast参数和对应的处理逻辑。

步骤2:更稳妥的替代方案(不修改库源代码)

直接修改第三方库的源代码不是好习惯——后续更新库时你的修改会被覆盖,而且容易引发其他问题。建议你**继承原类,重写__init__**来添加自定义参数:

from tensorflow.keras.preprocessing.image import ImageDataGenerator

class CustomImageDataGenerator(ImageDataGenerator):
    def __init__(self, zca_whitening_fast=False, **kwargs):
        # 先调用父类的初始化方法
        super().__init__(**kwargs)
        # 添加你的自定义参数
        self.zca_whitening_fast = zca_whitening_fast
        # 这里可以添加你需要的额外逻辑,比如基于这个参数的处理

# 之后用自定义类代替原类
datagen = CustomImageDataGenerator(zca_whitening_fast=True)

这样既实现了你的需求,又不会破坏原库的代码。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 14:57:41