2013-08-26 40 views
0

我在Mac OSX中使用Enthought Canopy 1.0.3 Python环境,也是其内置的文本编辑器。Enthought Canopy Editor不同步的Python源代码?

尝试从包含在开发框架中的ipython控制台运行脚本时,我检测到了一个奇怪的行为。我获得了一条错误消息,它指的是行编号与编辑器中显示的实际编号不匹配,而是与源代码的先前版本匹配。

例如,这是我从IPython的控制台获得:

%run /Users/xavi/workspace/python/saliency/maps.py 

(...) 

    /Users/xavi/workspace/python/saliency/binarization.py in calculate_foreground_ratio(binaryMask) 
     7 
     8 
----> 9 def calculate_foreground_ratio(binaryMask): 
    10  """ Compute the ratio of foreground pixels in the provided binary mask """ 
    11  return binaryMask.sum().astype(float)/np.size(binaryMask).astype(float) 

NameError: global name 'np' is not defined 

注意,他指着一个错误关于NP。定义,这是一个错误,应该被称为第11行,而不是第9行。

我也尝试强制使用python -m compileall重新编译。

有关如何解决此同步问题的任何想法?

非常感谢您提前。

+0

这里的罪魁祸首是'linecache'模块,它存储了在回溯中显示的代码片段。它必须有陈旧的线条。我以为我们已经修复了IPython - Canopy是否使用最新的IPython? –

回答

0

np模块不可用于执行代码的全局变量。确保你将numpy作为np导入到模块中,并且工作正常。这不是Canopy问题,而只是一个范围解决问题。