Ошибка импорта модуля Python службы приложений Azure при сборке - PullRequest
0 голосов
/ 02 марта 2019

Я успешно развертывал веб-приложение Python Flask linux до прошлой ночи.В моем последнем развертывании единственным изменением в моем приложении было добавление нового маршрута (без новых модулей Python).Однако при сборке появляется следующая ошибка:

2019-03-02T04:46:08.721673278Z [2019-03-02 04:46:08 +0000] [34] [INFO] 
Starting gunicorn 19.9.0
2019-03-02T04:46:08.731049340Z [2019-03-02 04:46:08 +0000] [34] [INFO] Listening at: http://0.0.0.0:8000 (34)
2019-03-02T04:46:08.731060340Z [2019-03-02 04:46:08 +0000] [34] [INFO] Using worker: sync
2019-03-02T04:46:08.740437601Z [2019-03-02 04:46:08 +0000] [37] [INFO] Booting worker with pid: 37
2019-03-02T04:46:10.919571939Z [2019-03-02 04:46:10 +0000] [37] [ERROR] Exception in worker process
2019-03-02T04:46:10.919591939Z Traceback (most recent call last):
2019-03-02T04:46:10.919596839Z   File "/usr/local/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2019-03-02T04:46:10.919610339Z     worker.init_process()
2019-03-02T04:46:10.919615539Z   File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 129, in init_process
2019-03-02T04:46:10.919619939Z     self.load_wsgi()
2019-03-02T04:46:10.919623739Z   File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
2019-03-02T04:46:10.919627939Z     self.wsgi = self.app.wsgi()
2019-03-02T04:46:10.919631639Z   File "/usr/local/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2019-03-02T04:46:10.919635639Z     self.callable = self.load()
2019-03-02T04:46:10.919639439Z   File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
2019-03-02T04:46:10.919651139Z     return self.load_wsgiapp()
2019-03-02T04:46:10.919655538Z   File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
2019-03-02T04:46:10.919659638Z     return util.import_app(self.app_uri)
2019-03-02T04:46:10.919663338Z   File "/usr/local/lib/python3.6/site-packages/gunicorn/util.py", line 350, in import_app
2019-03-02T04:46:10.919667338Z     __import__(module)
2019-03-02T04:46:10.919671038Z   File "/home/site/wwwroot/application.py", line 3, in <module>
2019-03-02T04:46:10.919675238Z     import utils
2019-03-02T04:46:10.919678938Z   File "/home/site/wwwroot/utils.py", line 2, in <module>
2019-03-02T04:46:10.919682938Z     import psycopg2
2019-03-02T04:46:10.919686738Z   File "/home/site/wwwroot/__oryx_packages__/psycopg2/__init__.py", line 50, in <module>
2019-03-02T04:46:10.919690638Z     from psycopg2._psycopg import (                     # noqa
2019-03-02T04:46:10.919694838Z ImportError: libpq-bd31fe2b.so.5.11: cannot open shared object file: No such file or directory
2019-03-02T04:46:10.920295036Z [2019-03-02 04:46:10 +0000] [37] [INFO] Worker exiting (pid: 37)
2019-03-02T04:46:11.013747652Z [2019-03-02 04:46:11 +0000] [34] [INFO] Shutting down: Master
2019-03-02T04:46:11.013775151Z [2019-03-02 04:46:11 +0000] [34] [INFO] Reason: Worker failed to boot.
2019-03-02 04:46:12.038 ERROR - Container rich-py-api_0 for site rich-py-api has exited, failing site start

Я использую бесплатную пробную подписку.Так как я не контролирую установку пакетов python?

1 Ответ

0 голосов
/ 10 марта 2019

Служба приложений Linux с Python все еще находится в Preview, и Microsoft разрабатывает условия гонки, которые делают развертывание недетерминированным (см. Систему отслеживания проблем и PR здесь: https://github.com/Microsoft/vscode-azureappservice/issues). У меня была такая же проблема плюс несколько похожихУ меня сложилось впечатление, что самое первое развертывание после создания нового сервиса приложений Linux более надежно, чем последующие. Поэтому я прибег к разрушению Appservice, воссозданию его с нуля с помощью Azure CLI для автоматизации и повторному развертываниювсе с нуля. Между созданием и повторным развертыванием я также добавляю SSH в контейнер и устанавливаю недостающие зависимости сборки для некоторых используемых мной пакетов Python.

apt-get update && apt-get install -y libssl-dev libffi-dev python-dev python-pip libpq5

Возможно, в настоящее время безопаснее использовать сделанный на заказ Dockerконтейнер вместо.

...