首页 > 解决方案 > 如何修复 Traceback 到旧代码版本?

问题描述

我在 Jupyter-notebook 中运行我的代码,它会将错误追溯到旧文件版本(实际文件中不再包含错误代码)

我更新了 ipython,尝试重新启动 Jupyter,重新打开了(以前是错误的)文件,然后重新启动了整个计算机。没有任何作用!

这是回溯错误:

TypeError                                 Traceback (most recent call last)

<ipython-input-34-b46c17b92e93> in batchGenerator(self, DG_list, batch_size, output_format)
    233             batches = []
    234             for DG in DG_list:
--> 235                 batches.append(DG.generate(batchIDs,output_format))
    236             yield tuple(batches) # match output type to keras fit_generator generator function
    237 

~\PycharmProjects\MMOP\ADT\DataGeneratorADT.py in generate(self, IDList, outputFormat)
    222                         if header != self._DUF_columns:
    223                             warnings.warn('The DUF header is not consistent with the DG setting. It is now set to:',
--> 224                                           header)
    225                             self._DUF_columns = header
    226                     list_reader = list(reader)

TypeError: category must be a Warning subclass, not 'list'

这是文件中的实际代码(在 Jupyter 中加载时):

file = open('DataGeneratorADT.py','r')
content  = file.read()
print(content)

相关的代码行:

if header != self._DUF_columns:
    print('The DUF header is not consistent with the DG setting. It is now set to:' + header)
    self._DUF_columns = header

我希望必须对警告出错,因为我删除了它并用 print 替换它。

标签: pythongitjupyter-notebooktraceback

解决方案


似乎有两个问题导致了这个错误:

  1. Jupyter 代码尝试访问 master 上的代码,尽管我已在另一个特定分支上签出。根据这个线程,它不应该发生,但情况仍然如此。
  2. 对模块的调用链接到一个持久的杂乱文件(不受任何提交或重新启动的影响)。这是通过使用命令解决的:git gc。上面的命令删除临时文件和不必要的文件。(垃圾收集器)

推荐阅读