将我的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 -
我首先以为我搞砸了我的PyCharm配置,但是简单地回滚到1.9.35(通过将我的/usr/local/google_appengine符号链接指向相应的SDK版本目录)可以使一切恢复正常。
/usr/local/google_appengine
该SDK发行说明似乎并没有标明相关的任何东西。
我发现了一个类似的报告,但是建议的修复(回滚)在接下来的工作中并不是真正可以接受的。
我也找到了这篇文章,但没有安装protobuf(明确地):升级Google App Engine启动器后如何解决webapp2导入错误?。仍在仔细阅读相关文章,以使我了解到SDK中可能存在的相关差异,接下来我将对其进行调查:
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中修复。
该问题已为Google所知,已在1.9.37中引入:
根据Jon Parrot的说法,来自报告线程:
感谢大家举报。我们已重现了该问题,并且已收到修复程序。它不会在下一个SDK版本(38)中出现,但可能会在39或40中出现。
在发布此修补程序之前,可以在此处找到较早的不受影响的SDK版本(如1.9.36)。