Virtualenv __future__ module works on command line

2019-07-21 02:06发布

I'm running into a strange error when running App Engine from within my virtualenv. Here is the error:

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__
  • If I run python in my virtualenv and type import __future__, it imports.
  • If I deactivate my virtualenv and run dev_appserver.py, the app works.
  • But if my virtualenv is active AND I run dev_appserver.py (even though #1 is true), the app does not work and I get the error above.

Why would __future__ be available while running the Python interpreter, but not dev_appserver.py?

1条回答
三岁会撩人
2楼-- · 2019-07-21 02:14

This is bug 4339. Make sure you use the SDK version 1.6.0, then do:

$ 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
查看更多
登录 后发表回答