Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google Cloud SDK - No module named ipaddr

Today our development containers started throwing and error while running the App Engine (GAE) Standard local development environment from the Google Cloud SDK.

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

It looks like it was caused by an upgrade to the latest SDK which happened automatically.

like image 739
iamacarpet Avatar asked Dec 15 '17 09:12

iamacarpet


3 Answers

Temporal solution for macOS, copy the ipaddr.py file to <google-cloud-sdk>/platform/google_appengine

like image 188
AbeEstrada Avatar answered Nov 06 '22 01:11

AbeEstrada


On Ubuntu 14.04, which we are using to match the GAE PHP version of 5.5, the python module they are trying to use isn't installed by default.

We installed it with:

# apt install python-ipaddr

This looks to be because of a feature they have introduced to do with host checking, to prevent DNS rebinding attacks.

like image 30
iamacarpet Avatar answered Nov 06 '22 01:11

iamacarpet


In Windows 10, I copied the file ipaddr.py from https://github.com/google/ipaddr-py into the Google\Cloud SDK\google-cloud-sdk\platform\bundledpython\Lib\ folder and it worked.

Not an experienced Python coder, so I'm not sure if it's the best place to put the missing ipaddr.py file, but it works.

like image 1
user9154641 Avatar answered Nov 06 '22 03:11

user9154641