2012-06-05 3 views
2

내 응용 프로그램의 루트 디렉토리에 main.py라는 파일이 있습니다.main.py는 "ImportError : No module app"을 throw합니다.

app = webapp2.WSGIApplication(routes = routes, debug = True, config = config) 

def main(): 
    app.run() 

if __name__ == '__main__': 
    main() 

내가 가지고, 다른 사람의 사이에,이 애플리케이션 제목에 :

- url: /.* 
    script: main.app 

1.6.6 SDK로 업그레이드 한 후, 내가 얻을 다음이 파일은 응용 프로그램을 시작하는 코드를 포함 오류 :

내가 main.py 이상 아무것도에 main.py 이름을 변경하고 애플리케이션 제목 그에 따라 업데이트 할 경우
ERROR 2012-06-05 13:39:01,856 wsgi.py:189] 
Traceback (most recent call last): 
File "/Users/jdoe/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 187, in Handle 
handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 
File "/Users/jdoe/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 236, in _LoadHandler 
__import__(cumulative_path) 
ImportError: No module named app 

이 오류가 사라지고 나는 응용 프로그램을 실행할 수 있습니다.

메인 루틴을 main.py라는 파일에 더 이상 저장할 수없는 이유는 무엇입니까? App Engine SDK 다운로드 페이지에서 SDK에 시험용 Python 2.7 버전을 포함한다고 말하면서 발생한 문제와 관련이있을 수 있습니까?

도움 주셔서 감사합니다.

+2

이 문제를 직접 해결했습니다. main.py가있는 같은 dir에서 main이라는 패키지를 만들었습니다. app.yaml에서 main.app을 살펴 보도록 지정했습니다. main.py와 같은 dir에 main이라는 패키지가 있다면, Python은 app 내부의 모듈을 찾으러 간다고 봅니다. main이라는 패키지가 없다면, main.py를 보면 행복하게 보입니다. – Jannik

+1

그건 App Engine이 아니라 Python에 달렸습니다. 동일한 이름의 패키지와 모듈을 가질 수 없습니다. 자신의 질문에 대한 대답으로 통찰력을 게시해야합니다. –

+0

@akindo, 찾기 쉽도록 답변을 추가하십시오! –

답변

0

내 대답은 대답으로 :

해결되었습니다. main.py가있는 같은 dir에서 main이라는 패키지를 만들었습니다. app.yaml에서 main.app을 살펴 보도록 지정했습니다. main.py와 같은 dir에 main이라는 패키지가 있다면, Python은 app 내부의 모듈을 찾으러 간다고 봅니다. main이라는 패키지가 없다면, main.py를 보면 행복하게 보입니다.

관련 문제