所以,我使用ipython笔记本遇到了一个奇怪的问题而不知道该怎么做。通常,当我运行部分代码时,如果有错误,我会追溯它,修复它,然后重新运行代码。我做了类似的事情,但即使在对代码进行更改之后,看起来似乎没有任何变化!
这是一个例子......我正在使用Python 3.5,所以xrange已经消失了。这会导致抛出错误:
XXXX
24 XXXX
25 XXXX
---> 26 for t in xrange(0,len(data),1):
27
28 XXXX
NameError: name 'xrange' is not defined
但在更改我的代码后(你可以在下面看到第26行的差异),会弹出同样的错误!
XXXX
24 XXXX
25 XXXX
---> 26 for t in range(0,len(data),1):
27
28 XXX
NameError: name 'xrange' is not defined
关于为什么会发生这种情况的任何想法?
正如Thomas K所说,你可能正在对未导入的外部文件进行更改。在这种情况下,ipython笔记本中有一个非常有用的命令,称为autoreaload。使用autoreaload,无论何时修改外部文件,您都不必再次导入它,因为扩展程序会为您处理。有关更多信息,请查看:ipython autoreload。
我有时会遇到同样的问题。我认为它与内存有关 - 如果我有一堆数据帧挂在它周围似乎会导致问题。如果我使用Kernel> Restart选项重启内核,问题就会消失。