Skip to main content
 首页 » 编程设计

python之Virtualenv __future__ 模块在命令行上工作,但在运行 dev_appserver.py 时不起作用

2025年05月04日24birdshome

在我的 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?

请您参考如下方法:

这是 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