当前位置: 首页 > 面试题库 >

升级Linux SDK之后,“导入错误:没有名为webapp2的模块”(1.9.35-> 1.9.38)

柴浩大
2023-03-14
问题内容

将我的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版本目录)可以使一切恢复正常。

该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中引入:

  • 确认的报告具有更多信息
  • 跟踪为GAE第12963期。

根据Jon Parrot的说法,来自报告线程:

感谢大家举报。我们已重现了该问题,并且已收到修复程序。它不会在下一个SDK版本(38)中出现,但可能会在39或40中出现。

在发布此修补程序之前,可以在此处找到较早的不受影响的SDK版本(如1.9.36)。



 类似资料:
  • 问题内容: 我有一个与此问题非常相似的问题,但仍落后了一步。我在Windows 7( 对不起 )64位系统上仅安装了一个Python 3版本。 我在此链接后安装了numpy-如问题中所述。安装进行得很好,但是当我执行时 我收到以下错误: 导入错误:没有名为numpy的模块 我知道这可能是一个超级基本的问题,但我仍在学习。 谢谢 问题答案: NumPy版本1.5.0中添加了对Python 3的支持

  • 问题内容: 我正在使用centos linux。 我有Django的python 2.6,现在我升级到了python 2.7。 Python 2.6位于/usr/lib/python2.6中。 Python 2.7位于/usr/local/lib/python2.7中。 它们都具有site-packages目录,并且都包含django 1.2。 如果我运行python,我将获得2.7版本。 我的问

  • 问题内容: 我看到很多这些错误。我已经尝试了所有我想做的事情,但还没有弄清楚。 我正在开发运行python 2.5和Django 1.3的开发服务器。在解压缩tar.gz下载文件后,使用python setup.py install安装了Django 1.3。 一切正常,我很少需要运行,但是尝试使用新的应用程序,并且遇到了问题。 好的,所以我有PATH问题。 从Django安装程序中,我再次检查目

  • 我有一个与这个问题非常相似的问题。我的Windows 7 64位系统上只安装了一个版本的python 3.5。我通过官方网站安装了Anaconda3.4,正如问题中所建议的那样。安装进行得很顺利,但当我想导入时(我只是从命令行键入python) 然后我退出并键入 已满足要求(使用--upgrade to upgrade):d:\program Files\anaconda3\lib\site软件包

  • 运行此代码后,我发现导入错误:- 如何使用google.apengine.ext

  • 问题内容: 我试图在用Sublime Text编写的Python脚本中使用Gnuplot。每当我构建时,我都会收到错误消息 如果直接在Terminal中执行完全相同的代码行,则导入和使用Gnuplot不会出现问题。 导入错误似乎很常见,仅与其他模块一样。通常,此修复程序与PYTHONPATH有关。但是,Gnuplot在我位于 因此应该找到。 有人解决了这个问题吗? 问题答案: Sublime Te