2013-05-03 63 views
3

这个问题是不是特定的错误---错误棱因为我使用matplotlibtight_layout不正确。为什么iPython笔记本解释注释行?

我想知道为什么iPython正在解释我已经注释过的一行代码 - 或者说,在什么情况下会发生这种情况(即,我需要重新启动内核,或者其他什么情况)。

的错误似乎依然存在,尽管事实上,我重新执行相关进口。

代码:

import forecasting_report.analyze as fcst_rprt 
analysis = fcst_rprt.ForecastingReport() 
analysis.analyze() 
results = analysis.user_dict 

错误说:

--------------------------------------------------------------------------- 
ValueError        Traceback (most recent call last) 
<ipython-input-6-a62e6e8717be> in <module>() 
     1 analysis = fcst_rprt.ForecastingReport() 
----> 2 analysis.analyze() 
     3 results = analysis.user_dict 

/Users/[...]/ForecastingReport/forecasting_report/analyze.py in analyze(self) 
    44   self.breakdown = help.breakdown(self.user_dict) 
---> 45   #plots.plot_breakdown(self.breakdown, self.path) 
    46 
    47  def write_results(self): 

<Error Stack continues> 

注:

一个绝对优良的回答是: “这不只是它的工作方式”。可以肯定的是,我没有试图在命令行重现这个错误,所以它可能只是我对Python解释器的无知。

+1

你试过重新启动笔记本 – babalu 2013-05-03 16:11:12

+0

是的 - 这似乎解决了这个问题。我只是不知道为什么'import'语句没有对模块进行更改。 – BenDundee 2013-05-03 16:12:19

+1

在过去,我注意到如果我安装了一个模块,它不会自动变为可用,需要重新启动。 – babalu 2013-05-03 16:14:02

回答

1

Python会只初始化一个导入模块一次,还呼吁import不会有任何效果,即使模块已经因为被读取修改。

要重新加载一个模块,可以使用内建的功能reload已经导入的模块对象,例如:

import mymodule 

# ...later... 
reload(mymodule) 
1

尝试

%load_ext autoreload 
%autoreload 2 

应与IPython的终端工作,我不知道这是否在ipython笔记本中工作。你可以查看帮助通过autoreload?和这篇文章:Autoreload of modules in IPython