2011-04-12 4 views
2

어제 Google App Engine을 사용하여 Python으로 개발하면 현재 버전의 스크립트가 실행되지 않았습니다. 최신 버전을 실행하는 대신 .py 소스가 변경된 경우에도 이전에 미리 컴파일 된 .pyc를 실행하는 것처럼 보입니다.Python은 변경된 파일을 해석하지 않습니다. 쓸모없는 .pyc를 사용합니다.

오류 메시지는 실제로 가장 최근의 원본에서 올바른 줄을 인용합니다. 행의 위치가 변경된 경우를 제외하고 이전에 오류가 발생한 위치에있는 행을 인용합니다.

.pyc 파일을 삭제하면 파일이 현재 버전에서 재생성됩니다. 모든 .pyc를 삭제하는 것은 현재로서는 좋지 않은 해결 방법입니다.

문제의 근본 원인을 어떻게 찾을 수 있습니까?

+0

로, 명령 줄에서 애플리케이션 서버를 실행하는 경우 는 이상하게 충분히 작동합니다. co.kr /). 그럼에도 불구하고 인터넷에서이 문제에 대한 언급을 찾지 못했습니다. Google App Engine 실행기를 통해 앱을 중지했다가 다시 시작하는 것은 기능적이지만 번거로운 방법입니다. – Riley

답변

0

다음 단계는이 문제를 일시적으로 해결 :

  1. 는 응용 프로그램 폴더에서 GoogleAppEngineLauncher을 삭제합니다.
  2. 파일 ~/라이브러리/응용 프로그램 지원/GoogleAppEngineLauncher/Projects.plist의 이름을 변경 (예 : Project.plist.backup
  3. 파일은 ~/라이브러리/환경 설정의 이름을 변경/예 com.google com.google.GoogleAppEngineLauncher.plist (.
  4. Google App Engine Launcher를 다시 다운로드하여 설치하십시오.
  5. "파일", "기존 응용 프로그램 추가 ..."를 사용하여 프로젝트를 다시 추가하십시오. 이전에 설정 한 플래그를 설정하는 것을 잊지 마십시오.

GAEL을 한 번 시작하고 닫으면 백업 된 기본 설정 파일을 다시 구성하여 재구성하지 않아도됩니다.

편집 : 일시적으로 수정됩니다. 정확히 디버깅하기 쉬운 문제는 아닙니다. //timezones.appspot : 그런 내가 대신 현지 시간 (HTTP의 UTC를 사용하여 Google App Engine을 함께해야 할 수도 지금 생각

dev_appserver.py testproject/ -p 8082 --debug 
2

시스템 시계를 확인 했습니까? 나는 파이썬이 타임 스탬프에 기반하여 .pyc 또는 .py를 사용할지를 결정한다고 믿는다. 시스템 클럭이 다시 푸시되면 시스템 클럭이 마지막으로 빌드 된 시간까지 따라 잡을 때까지 .pyc 파일이 새 것으로 표시됩니다.

+0

팁 주셔서 감사. 시스템 시간을 확인하면 파일의 날짜뿐 아니라 모든 것을 순서대로 찾을 수 있습니다. 그들은 모두 .pyc와 .py에서 정확합니다.또한 .py를 변경하면 시간이 올바르게 업데이트됩니다. – Riley

2

.py 파일을 컴파일중인 다른 시스템에서 편집하고 있습니까?

컴파일러는 수정 날짜가 .pyc 파일의 수정 날짜보다 이후 인 경우 .py 파일을 다시 컴파일합니다.

.pyc 파일을 선택한다는 사실은 .py 파일에 이전 수정 날짜가 있음을 나타냅니다. 이는 .py 파일이 다른 시스템에서 수정되고 사용되는 곳으로 복사되고 편집 환경/시스템의 시계가 런타임 환경/시스템의 시계 뒤에 설정되는 경우에만 가능합니다.

+0

모두 한 시스템에 있습니다. 내가 타임 스탬프를 확인하고 파일을 편집 할 때 올바르게 업데이트됩니다. 내가 다음에 확인할 수있는 것이 있는지 모르겠다. ( – Riley