Linux SDK升级后的“ImportError:No module named webapp2”(1.9.35 – > 1.9.38)

将GAE Python Linux SDK从版本1.9.35升级到1.9.38后,我的应用程序停止工作,所有请求都以类似的方式失败:

ERROR 2016-06-10 17:55:06,100 wsgi.py:263] Traceback (most recent call last): File "/usr/local/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) File "/usr/local/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler handler, path, err = LoadObject(self._handler) File "/usr/local/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject obj = __import__(path[0]) File "/home/dancorn/src/apartsw/main/main.py", line 9, in <module> import webapp2 ImportError: No module named webapp2 INFO 2016-06-10 17:55:06,102 module.py:788] default: "GET / HTTP/1.1" 500 - 

我首先想到,我搞砸了我的PyCharmconfiguration,但只是回滚到1.9.35(通过指向我/usr/local/google_appengine符号链接回相应的SDK版本目录)让事情按预期工作。

SDK发行说明似乎没有显示任何相关信息。

我发现了一个类似的报告 ,但build议的修复(回滚)并不是真的可以接受。

我也发现这个post,但我没有protobuf(明确)安装: 如何解决升级后的Google App Engine启动器的webapp2导入错误? 。 仍然咀嚼相关的post,导致我在SDK中这个潜在的相关三angular洲,我将接下来调查:

 diff google_appengine_1.9.35/_python_runtime.py google_appengine_1.9.38/_python_runtime.py 71a72,75 > if 'google' in sys.modules: > google_path = os.path.join(os.path.dirname(__file__), 'google') > google_module = sys.modules['google'] > google_module.__path__.append(google_path) 74,77c78 < < < if 'google' in sys.modules: < del sys.modules['google'] --- > google_module.__file__ = google_path 

任何其他调查线索?

更新:问题已在SDK版本1.9.40中修复。

这个问题已经在1.9.37中介绍过,

  • 公认的报告与更多的信息
  • 追踪为GAE Issue 12963 。

根据Jon Parrot的报告,

感谢大家报告这个。 我们已经转载了这个问题,并修复了传入。 它不会在下一个SDK版本(38)中,但可能会在39或40。

在修正发布之前,可以在这里find一个早期的不受影响的SDK版本(如1.9.36)。