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 に関するエラーを指摘していることに注意してください。これは、9 行目ではなく 11 行目を参照する必要があるエラーです。

で再コンパイルを強制しようとしましたpython -m compileall

この同期の問題を解決する方法について何か考えはありますか?

事前にどうもありがとうございました。

4

1 に答える 1

0

np モジュールは、コードの実行を取り巻くグローバルでは利用できません。numpy を np としてモジュールにインポートしていることを確認してください。正常に動作します。これはキャノピーの問題ではなく、スコープの解決の問題です。

于 2013-08-26T15:10:32.990 に答える