我更改代码时ipython笔记本没有更新

时间:2016-01-13 03:54:50

标签: ipython ipython-notebook jupyter jupyter-notebook

所以,我使用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

关于为什么会发生这种情况的任何想法?

5 个答案:

答案 0 :(得分:3)

对我来说,这是由于以下其中一项

  • 原因1:导入的模块未更新

解决方案:

import importlib
importlib.reload(your_module)
  • 原因2:其他

解决方案::重新启动内核,对于Jupyter Notebook,这就是方法 enter image description here

答案 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)两次或三次。然后将根据更新的代码显示结果。希望对您有所帮助。

相关问题