0

我在 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.

关于如何解决这个同步问题的任何想法?

非常感谢您提前。

4

1 回答 1

0

The np module is not available of the globals surrounding the execution of your code. Make sure you import numpy as np into the module and it will work fine. This is not a Canopy issue but only a scope resolution problem.

于 2013-08-26T15:10:32.990 回答