2011-07-28 2 views
2

virtualenv에서 App Engine을 실행할 때 이상한 오류가 발생합니다. 여기에 오류 :Virtualenv __future__ 모듈은 명령 행에서 작동하지만 dev_appserver.py를 실행하는 동안에는 작동하지 않습니다.

File "/home/matthew/dev/sdks/google_appengine_1.5.2/google/appengine/tools/dev_appserver.py", line 2318, in LoadModuleRestricted description) 
File "/home/matthew/dev/projects/webapp2/project/src/webapp2.py", line 11, in <module> 
    from __future__ import with_statement 
ImportError: No module named __future__ 
  • 내 VIRTUALENV에서 파이썬을 실행하고 import __future__를 입력하면, 그것은 가져옵니다.
  • 내 virtualenv를 비활성화하고 dev_appserver.py을 실행하면 앱이 작동합니다.
  • 내 virtualenv가 활성화되어 있고 dev_appserver.py (심지어 # 1이 맞지만 )를 실행하면 앱이 작동하지 않고 위의 오류가 발생합니다.

__future__은 파이썬 인터프리터를 실행하는 동안 사용할 수 있지만 dev_appserver.py는 사용할 수 없습니까?

+0

향후 진술을 제거하면 'dev_appserver.py'가 작동합니까? virtualenv에서 다른 가져 오기를 찾을 수 있습니까? '__future__'는 파일의 첫 번째 줄이므로 문제가되는 것처럼 보일 수 있습니다. – agf

+0

예.하지만 "with"구문이 없으면 나중에 다른 오류가 발생합니다. –

+0

'from __future__ import'와'import __future__'는 실제로 같지 않습니다 ... 첫 번째 것은 미래의 문장으로 수입이 아니며 bytecompiler에 의해 특별히 처리됩니다. 두 번째 모듈은 실제로'__future__' 모듈을 가져옵니다. 첫 번째 인터프리터는 virtualenv에서 작동합니까? – agf

답변

1

이것은 bug 4339입니다. SDK 버전 1.6.0을 사용하고 있는지 확인한 다음 수행하십시오.

$ cd /usr/local/google_appengine/google/appengine/tools 
$ wget "http://googleappengine.googlecode.com/issues/attachment?aid=43390029000&name=dev_appserver_import_hook.patch&token=974d9f138a5604dc7eb0526156b26cc7" -O dev_appserver.patch 
$ patch -p1 < dev_appserver.patch