15
votes

Recently, I have updated Google App Engine from 1.9.17 to 1.9.18 via Google Cloud SDK by using command 'gcloud components update' in Windows 7 64 bit. After that I wasn't able to start any project using the App Engine launcher. Getting this error:

Traceback (most recent call last):
  File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\dev_appserver.py", line 83, in <module>
    _run_file(__file__, globals())
  File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\dev_appserver.py", line 79, in _run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 36, in <module>
    from google.appengine.tools.devappserver2 import dispatcher
  File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\dispatcher.py", line 29, in <module>
    from google.appengine.tools.devappserver2 import module
  File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\module.py", line 71, in <module>
    from google.appengine.tools.devappserver2 import vm_runtime_factory
  File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\vm_runtime_factory.py", line 25, in <module>
    from google.appengine.tools.devappserver2 import vm_runtime_proxy
  File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\vm_runtime_proxy.py", line 29, in <module>
    from google.appengine.tools.devappserver2 import log_manager
  File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\log_manager.py", line 34, in <module>
    from google.appengine.tools.docker import containers
  File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\docker\containers.py", line 47, in <module>
    import docker
ImportError: No module named docker
2015-03-05 19:11:27 (Process exited with code 1)

I even installed the latest Google Cloud SDK, but I'm getting the same error.

I'm able to install the appengine SDK 1.9.18(without using Google Cloud SDK) and able to run the project successfully.

This error is happening only for the App Engine launcher installed via Google Cloud SDK in Windows 7.

This issue is raised in App Engine Issue Tracker: Issue 125. I recommend you to star this issue.

4
I don't have a Windows machine to check, but apparently C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\lib\docker did not install correctly -- can you check if that directory exists and what's in it? Worst case, you should be able to get it from github.com/docker/docker-py ... - Alex Martelli
Yes Its there. I have installed the Google Cloud SDK in another system. Same issue there also. - Nijin Narayanan

4 Answers

8
votes

This is currently an issue with the dev_appserver bundled in the Cloud SDK. A fix will be out soon. In the meanwhile, your options are: 1) Use gcloud preview app run to run your app when using the Cloud SDK 2) Install the standalone AppEngine SDK (which you already mentioned in your question)

13
votes

This has happened to me today to reinstall the app engine sdk. I could not run my code in the launcher.

I remember reading that is not used pip app engine, but now I have solved the problem.

In short what I did was:

  1. Install pip the footsteps of https://pip.pypa.io/en/latest/installing.html (this also correctly install the setuptools)

  2. Install docker-py by pip: pip install docker-py and ready, I can now run my code in the launcher

P.S. Previously I tried to install the docker-py package, downloaded from https://github.com/docker/docker-py, but lacked setuptools, downloaded and installed the package did not work. So use this with pip.

3
votes

If installing docker-py doesn't work and the stacktrace shows that the error line is:

from docker import docker

Change this line to:

import docker

Source

0
votes

Jumping on the answer from @Tzach and adding some info.

The file to modify is containers.py

for me it is located here : C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\docker

If you can't modify it because the file is open in an application, it is in fact that the folder is protected. Just copy/paste the file on your desktop and modify it from there. then copy it back in the original folder.