Flask Google Cloud App Engine: OSError: [Errno 98] Адрес уже используется - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь развернуть приложение фляги в облачном движке Google. Он работает нормально в моей виртуальной среде локально, но я получаю ошибку 502 при запуске в облаке.

Теперь я пытаюсь отладить свой код на облачном сервере, используя режим отладки и SSH в моем экземпляре. Используя docker exec -it [ID] /bin/bash, я могу получить доступ к корню моего приложения. Теперь при запуске python app.py я получаю следующую ошибку:

 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
Traceback (most recent call last):
  File "app.py", line 479, in <module>
    app.run(port=8080)
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 941, in run
    run_simple(host, port, self, **options)
  File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 814, in run_simple
    inner()
  File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 774, in inner
    fd=fd)
  File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 660, in make_server
    passthrough_errors, ssl_context, fd=fd)
  File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 577, in __init__
    self.address_family), handler)
  File "/usr/local/lib/python3.6/socketserver.py", line 453, in __init__
    self.server_bind()
  File "/usr/local/lib/python3.6/http/server.py", line 136, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "/usr/local/lib/python3.6/socketserver.py", line 467, in server_bind
    self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use

Я пытался убить перечисленные процессы при запуске:

ps -fA | grep python

Однако это не решает проблему используемого адреса. Также изменение порта в app.run () не решает проблему для меня.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Хотя я не смог выяснить, как «освободить» рабочий адрес, я решил проблему, запустив другой процесс фляги, запустив его на другом порту, например:

flask run --port=80
0 голосов
/ 04 мая 2018

Думаю, проблема в том, что вам не нужно специализировать порт для облака. Google Cloud находит порт для запуска вашего приложения самостоятельно. Поэтому вместо app.run(port=8080) просто напишите app.run()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...