Virtualenv __future__模块在命令行上运行,但在运行dev_appserver.py时不运行

时间:2011-07-28 03:12:19

标签: python google-app-engine virtualenv importerror

virtualenv 中运行App Engine时遇到一个奇怪的错误。这是错误:

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中运行python并输入import __future__,那就是它 进口。
  • 如果我停用我的virtualenv并运行 dev_appserver.py ,那么 应用程序。
  • 但是如果我的virtualenv是活动的,我运行dev_appserver.py(甚至 虽然#1是真的),但该应用程序无效,我收到上述错误。

为什么__future__在运行Python解释器时可用,而不是dev_appserver.py?

1 个答案:

答案 0 :(得分: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