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

时间:2017-12-15 09:49:10

标签: 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

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

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:3)

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

我们安装了它:

# apt install python-ipaddr

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

答案 2 :(得分:1)

在Windows 10中,我将文件ipaddr.pyhttps://github.com/google/ipaddr-py复制到Google\Cloud SDK\google-cloud-sdk\platform\bundledpython\Lib\文件夹中,然后才有效。

不是经验丰富的Python编码器,因此我不确定它是否是放置丢失的ipaddr.py文件的最佳位置,但它确实有效。

答案 3 :(得分:0)

这发生在我的Windows 7中升级GoogleAppEngine-1.9.65后,似乎C:\ Program Files(x86)\ Google \ google_appengine \ lib \ ipaddr \ ipaddr文件夹缺少ipaddr.py文件。

我必须下载ipaddr-2.2.0.tar.gz然后解压缩并运行以下命令进行安装。

python setup.py install

希望这有帮助。