2013-05-03 61 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