2012-01-03 5 views
2

저는 현재 여러 모듈을 포함하는 Python으로 작성된 대규모 소프트웨어 시스템에서 작업하고 있습니다. 나는 누군가가 내가 받고 계속이 오류 메시지의 의미를 수 있다면 나는 이것에 대해 무엇을해야하는지 궁금 해서요 :Python - 매우 모호한 오류 메시지

File "<string>", line 1, in <module> 
NameError: name 'CerealObject' is not defined 

매우 비밀 만드는 것은 실제 파일 이름을 제공하지 것이다 또는 특정 모듈. 초보자의 입장에서 보면 디버깅이 불가능 해 보입니다.

+1

'CerealObject'에 대해 grep하고 많은 인스턴스를 찾았습니까? 그'line 1, in '물건은 보통 REPL에서 발생합니다. – nmichaels

+0

그게 모호하지 않아서 'CerealObject'를 제대로 찾을 수 없습니까? ... – Kekoa

+0

@nmichaels에서 가져 오기 CerealObject를 호출하는 것과 아무 관련이없는 새 모듈을 추가 할 때 이전에이 오류가 발생하지 않았습니다. –

답변

2

File "<string>" 예외 스택 추적에서 일반적으로 어딘가에 exec 또는 eval 중 하나를 사용하고 있음을 의미합니다. 문자열에서 코드를 실행하기 때문에 실제 파일 이름이 부족합니다.

스택 추적의 다음 줄을보고 문제의 원인을 찾아야합니다.

+0

일반적으로 스택 추적 ("추적"이라고도 함)은 stderr로 덤프되지만, 다른 곳 (로그와 같은)으로 전송되거나 프로그램에 의해 삼켜 질 수도 있습니다. 귀하가 질문에 게시 한 오류 메시지는 추적 표시의 시작 부분에서 온 것이므로 어디에서 보십니까? –

+0

기본적으로 내 프로그램의 로그 출력에 있습니다. 이제는 스택 트레이스가 무엇을 의미하는지 이해합니다 (프로그램의 출력에서 ​​Traceback이라고 함). –

+0

일반적으로 내 로그는 특정 오류가 추적 시퀀스에서 발견 된 여러 위치를 인쇄하지만 이번에는 원본 질문에 게시 한 일반 오류 메시지를 인쇄합니다. 추가로는 –