2013-08-26 3 views
0

Mac OSX에서 Enthought Canopy 1.0.3 Python 환경을 사용하고 있으며 내장 텍스트 편집기도 사용하고 있습니다.Enthought Canopy Editor의 Python 소스 코드가 동기화되지 않았습니까?

개발 프레임 워크에 포함 된 ipython 콘솔에서 스크립트를 실행하려고 할 때 이상한 동작이 감지되었습니다. 편집기에 표시된 실제 번호와 일치하지 않는 줄 번호 매기기를 나타내지 만 이전 버전의 소스 코드를 나타내는 오류 메시지가 표시됩니다. 그는 NP에 대한 오류 가리키는 것을

%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 

공지 사항 :

은 예를 들어, 내가 ipython 콘솔에서 얻는 것입니다. 정의, 9 행 대신 11 행을 참조해야하는 오류입니다.

또한 python -m compileall으로 재 컴파일을 시도했습니다.

이 동기화 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

대단히 감사합니다.

+0

여기서 발생한 범인은 추적 코드에 표시되는 코드 스 니펫을 저장하는'linecache' 모듈입니다. 부실 선이 있어야합니다. 우리가 IPython에서 수정 한 줄 알았는데 - 최신 IPython을 사용하는 Canopy입니까? –

답변

0

np 모듈은 코드 실행을 둘러싼 전역 변수에서 사용할 수 없습니다. 모듈로 numpy를 np로 가져 오면 제대로 작동합니다. 이것은 캐노피 문제가 아니라 범위 분석 문제입니다.

관련 문제