【发布时间】:2013-08-26 12:36:57
【问题描述】:
我在 Mac OSX 中使用 Enthought Canopy 1.0.3 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 强制重新编译。
关于如何解决这个同步问题的任何想法?
非常感谢您。
【问题讨论】:
-
这里的罪魁祸首将是
linecache模块,它存储了在回溯中显示的代码的sn-ps。它必须有陈旧的线条。我以为我们已经在 IPython 中解决了这个问题 - Canopy 是否使用最新的 IPython?
标签: python macos synchronization ipython enthought