Google Cloud SDK - 没有名为ipaddr的模块

iam*_*pet 5 php google-app-engine google-cloud-platform google-cloud-sdk

今天,我们的开发容器在从Google Cloud SDK运行App Engine(GAE)标准本地开发环境时开始抛出错误.

ERROR    2017-12-15 09:38:37,766 http_runtime.py:396] bad runtime process port ['']
Traceback (most recent call last):
  File "/opt/google-cloud-sdk/platform/google_appengine/_php_runtime.py", line 103, in <module>
    _run_file(__file__, globals())
  File "/opt/google-cloud-sdk/platform/google_appengine/_php_runtime.py", line 97, in _run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "/opt/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/php/runtime/runtime.py", line 39, in <module>
    from google.appengine.tools.devappserver2 import wsgi_server
  File "/opt/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 34, in <module>
    import ipaddr
ImportError: No module named ipaddr
Run Code Online (Sandbox Code Playgroud)

看起来它是由升级到自动发生的最新SDK引起的.

Abe*_*ada 7

macOS的临时解决方案,将ipaddr.py文件复制到<google-cloud-sdk>/platform/google_appengine

  • 为我修好了.请注意,如果您仍然使用旧的启动器,则不在〜/ google-cloud-sdk中,而是在/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine (2认同)

iam*_*pet 3

在我们用来匹配 GAE PHP 版本 5.5 的 Ubuntu 14.04 上,默认情况下未安装他们尝试使用的 python 模块。

我们安装它:

# apt install python-ipaddr
Run Code Online (Sandbox Code Playgroud)

这看起来是因为他们引入了一项与主机检查有关的功能,以防止 DNS 重新绑定攻击。