2011-07-28 5 views
2

virtualenvの中からApp Engineを実行しているときに奇妙なエラーが発生しています。ここでエラーがある:私は私のvirtualenvの中でのpythonを実行し、import __future__を入力した場合Virtualenv __future__ moduleはコマンドラインで動作しますが、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を無効にしてdev_appserver.pyを実行すると、 アプリが動作します。
  • 私のvirtualenvがアクティブで、dev_appserver.pyを実行しても(#1が真であるにもかかわらず )、アプリケーションが動作せず、上記のエラーが表示されます。

__future__は、Pythonインタプリタを実行しているのに、dev_appserver.pyでは使用できないのはなぜですか?

+0

将来の文を削除すると 'dev_appserver.py'は機能しますか? virtualenvで他のインポートを見つけることができますか?それはファイルの最初の行であるため、 '__future__'が問題になっているように思えるかもしれません。 – agf

+0

はい、後で別のエラーが発生します。これは、「なし」の構文を理解していないためです。 –

+0

'from __future__ import'と' import __future__'は実際には同じではありません...最初のものは実際のインポートではなく、bytecompilerによって特別に扱われます。 2番目のモジュールは、実モジュール '__future__'を実際にインポートします。最初にvirtualenvのインタプリタで作業しますか? – agf

答えて

1

bug 4339です。

$ 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 
関連する問題