Error al iniciar el servidor de desarrollo – BindError: no se puede encontrar un puerto localhost consistente

El servidor de desarrollo de Google-app-engine funciona muy bien ayer, pero cuando bash iniciarlo hoy. Sólo grita este error.

Intenté usar lsof -i:8080 / lsof -i:8000 para asegurarme de que no se tomen estos puertos. También intenté usar un –port arg para cambiar a otro puerto. Incluso quité la carpeta gae e instalé una nueva. – Sin suerte en absoluto.

Tal vez hay una solución obvia pero no puedo verla.

Aquí está la stack de huellas de Oh-My-God …

 Traceback (most recent call last): File "/home/henry/software/google_appengine/dev_appserver.py", line 182, in  _run_file(__file__, globals()) File "/home/henry/software/google_appengine/dev_appserver.py", line 178, in _run_file execfile(script_path, globals_) File "/home/henry/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 689, in  main() File "/home/henry/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 682, in main dev_server.start(options) File "/home/henry/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 653, in start apis.start() File "/home/henry/software/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 152, in start super(APIServer, self).start() File "/home/henry/software/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 294, in start raise BindError('Unable to find a consistent port %s' % host) google.appengine.tools.devappserver2.wsgi_server.BindError: Unable to find a consistent port localhost Exception in thread Thread-4 (most likely raised during interpreter shutdown): Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner File "/usr/lib/python2.7/threading.py", line 763, in runhenry@henry-A 

Related of "Error al iniciar el servidor de desarrollo – BindError: no se puede encontrar un puerto localhost consistente"

Esto puede ser causado por múltiples entradas en su archivo hosts para ‘localhost’.

Por ejemplo en el archivo /etc/hosts :

 127.0.0.1 localhost 127.0.0.1 mymachinename localhost 

si elimina todas las asignaciones, excepto una para localhost, se espera que el problema se resuelva.

 127.0.0.1 mymachinename localhost 

Este es un problema conocido y, según tengo entendido, se corregirá en una versión futura.

Aunque nunca lo había visto, intente ejecutarlo en un puerto diferente o incluso usar un host diferente:

 dev_appserver.py /path/to/project --port 8888 --host 127.0.0.1 

Donde para el host añada su dirección IP actual.

Similar a lo que se publicó, tuve este problema y lo solucioné alterando el archivo de hosts. El problema fue con las direcciones IPv6 que redireccionaban a localhost:

En mi archivo hosts tuve

 127.0.0.1 localhost ::1 localhost fe80::1%lo0 localhost 

Y comenté las direcciones IPv6 para dar

 127.0.0.1 localhost #::1 localhost #fe80::1%lo0 localhost 

No estoy seguro de que esta sea una solución permanente viable, ya que imagino que es importante tener las direcciones numéricas de IPv6 para que localhost esté en el archivo de hosts, pero funciona por ahora hasta que se publique la solución adecuada.

Supongo que hay un error en el motor de la aplicación de Google. Depuré appengine / tools / devappserver2 / wsgi_server.py, y he aquí los hechos: 1. funciona bien cuando internet está desconectado 2. muestra tal error cuando internet está encendido.

 280 addrinfo = socket.getaddrinfo(host, port, socket.AF_UNSPEC, 281 socket.SOCK_STREAM, 0, socket.AI_PASSIVE) 

En este código, si conecta Internet, addrinfo solo tendrá la dirección en Internet público. Incluso se asigna puerto y host en la línea de comandos. Entonces no tiene posibilidad de enlazar este socket a localhost, ya que la dirección que vincula es la dirección pública que está usando ahora.

Para resolverlo, solo cambio el código en

 280 addrinfo = socket.getaddrinfo(host, port, socket.AF_UNSPEC, 281 socket.SOCK_STREAM, 1, socket.AI_PASSIVE) 

Ahora funciona bien, no verifiqué el código sobre socket.getaddrinfo , sin embargo, supongo que funciona ignorando la dirección de búsqueda o no de acuerdo con el entero 0 o 1.

Por cierto, estoy usando MacOs, también podría haber un problema de dependencia del sistema, si este es el caso, entonces el paquete de socket debería rediseñarse de alguna manera.

 dev_appserver.py . --port 4000 

Esto me lo arregló.

dev_appserver.py este problema al pasar un puerto api explícito a dev_appserver.py :

 dev_appserver.py path/to/project --api_port 3000 

No pude resolver el problema editando el archivo de hosts o pasando --port / --host a dev_appserver.py .

No identifiqué la causa raíz.

En mi caso solo reiniciando el terminal funcionó.