Error Dev_appserver.py al intentar implementar en Google AppEngine

Estoy tratando de implementar un ejemplo de servidor de dart usando Google AppEngine. Sin embargo, cuando ejecuto este script de python (con la última versión de python instalada 3.5)

dev_appserver.py

También he intentado

dev_appserver.py –custom_entrypoint “dart bin / server.dart {port}” app.yaml

Me sale este error:

Traceback (most recent call last): File "C:\Users\jkrie\AppData\Local\Google\Cloud SDK\google-cloud- sdk\bin\dev_appserver.py", line 11, in  import bootstrapping.bootstrapping as bootstrapping File "C:\Users\jkrie\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\bootstrapping\bootstrapping.py", line 9, in  import setup 

ImportError: ningún módulo llamado ‘setup’

También he instalado setuptools. Tengo que asumir que hay algo mal con la instalación de Google Cloud SDK, pero realmente no sé qué. ¿Python 3.5 es demasiado nuevo y necesito probar una versión anterior?

El entorno estándar de GAE solo admite Python 2.7 en este momento, consulte la documentación de Google App Engine .

Python 3.4 solo se admite en el entorno flexible , que tiene un flujo de desarrollo diferente .

Relacionado: la nube de Google dev_appserver.py no puede alojar el proyecto de laravel localmente

De hecho, tienes que usar Python 2 para el entorno estándar de App Engine por el momento.

Si tiene Python 3 instalado, puede crear un virtualenv usando Python 2 usando mkvirtualenv google --python=$(which python2) y ejecutar dev_appserver.py . en ese ambiente

Esto le ahorra la molestia de tener que degradar o enlazar python a python2

Google podría anteponer el archivo con

 #!/usr/bin/env python2 

en lugar de

 #!/usr/bin/env python 

Haría sus herramientas compatibles con los sistemas operativos que usan python3 como predeterminado.

Como @ dan-cornilescu dijo que GAE Standard Environment solo admite Python2.7

Si se encuentra en un entorno con la multiversión de Python, puede usar Pipenv para ejecutar dev_appserver.py con la versión 2.7 de Python.

Una vez que haya instalado pipenv globaly puede crear un entorno pipenv dentro de su carpeta de proyecto con Python 2.7

 # pipenv install --twoo 

Cada vez que necesite ejecutar dev_appserver.py debe usar este comando

 # pipenv run dev_appserver.py app.yaml 

pipenv utilizará Python 2.7 para ejecutar su código. 😉

Tuve este problema ya que instalo python2.9 y python3.6. La forma rápida sin desinstalar python3 es simplemente eliminar la ruta de python3 en las variables de entorno mientras utiliza GAE. Añadirlos de nuevo cuando haya terminado con GAE.

Tuve el mismo problema con una aplicación muy simple de python35 (¡ahora, un año más tarde!) Creé un entorno virtual de python27 que funciona, pero necesitaba más soluciones.

Lo más fácil es ejecutar python applicationmodule.py en la línea de comandos del shell, asegurándose de tener esto en la parte inferior:
if __name__ == '__main__': # This is used when running locally. Gunicorn is used to run the # application on Google App Engine. See entrypoint in app.yaml. app.run(host='127.0.0.1', port=8080, debug=True)

Si desea ejecutar con dev_appserver.py , encontré que necesitaba ejecutar lo siguiente para hacer que esto funcione en Google Cloud Shell: dev_appserver.py app.yaml --custom_entrypoint ./applicationmodule.py

En ese caso, asegúrese de que applicationmodule.py no tenga el código if __name__ == '__main__': . Si tiene esto, entonces vuelve a comenzar la misma tarea y se queja sobre la contención en el puerto 8080.

Esto es diferente de otras respuestas que tienen el parámetro --custom_entrypoint que se parece más a la entrada app.yaml entrypoint:

En un momento dado, dev_appserver.py se quejó de ejecutar applicationmodule.py (se me olvida exactamente), así que hice ambos chmod 777 y agregué un #! apuntando a mi ejecutable local de python – funcionó después de haber hecho ambas cosas, ¡pero no sé si era el chmod o el #! eso lo hizo

App Engine ahora admite Python 3 desde la versión 3.7.

Aquí hay una guía de inicio rápido y algunas diferencias entre el soporte para las versiones 2.7 y 3.7.