所以,我使用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
关于为什么会发生这种情况的任何想法?
答案 0 :(得分:3)
对我来说,这是由于以下其中一项:
- 原因1:导入的模块未更新
解决方案:
import importlib
importlib.reload(your_module)
- 原因2:其他
答案 1 :(得分:1)
每当将外部文件与 Ipython 一起使用时,请使用 autoreload。每次在 IPython 中执行任何代码之前,它都会重新加载外部文件。
在 IPython 的第一个单元格中添加它。
%load_ext autoreload
%autoreload 2
答案 2 :(得分:0)
正如Thomas K所说,您可能正在对未导入的外部文件进行更改。在这种情况下,ipython Notebook中有一个非常有用的命令,称为 autoreaload 。使用自动重载,每当您修改外部文件时,您都不必再次导入它,因为扩展名会为您处理它。有关更多信息,请检查:ipython autoreload。
答案 3 :(得分:0)
有时我也会遇到同样的问题。我认为这与内存有关-如果我周围有一堆数据帧,这似乎会引起问题。如果我使用“内核”>“重新启动”选项重新启动内核,问题就会消失。
答案 4 :(得分:-1)
有时我也会遇到同样的问题。我重新启动了内核,但是没有用,我尝试运行单元(ctr + enter)两次或三次。然后将根据更新的代码显示结果。希望对您有所帮助。