Я пытаюсь запустить app.py, созданный с помощью python3 .7 (flask) в azure веб-приложениях.
Я развернул app.py и sleep_model.py, которые app.py использует из github.
(app.py импортирует sleep_model.py и sleep_model.py импортирует numpy.)
Затем я получил эту ошибку в azure потоке журнала:
'' '
2020-04-28T10:55:13.536802053Z File "/home/site/wwwroot/app.py", line 15, in <module>
2020-04-28T10:55:13.536806954Z import sleep_model
2020-04-28T10:55:13.536811454Z File "/home/site/wwwroot/sleep_model.py", line 1, in <module>
2020-04-28T10:55:13.536816354Z import numpy as np
2020-04-28T10:55:13.536821154Z ModuleNotFoundError: No module named 'numpy'
'' '
Что я должен изменить для sleep_model.py для успешного импорта numpy?
Структура моих ресурсов:
Подписка - Ресурсная группа - Служба приложений
Бесплатно (F1) - sleepapitest2 - sleepapitest2
Служба приложений План: appsvc_linux_centralus (F1: бесплатно)
Информация о системе:
Версия ОС: Unix 4.4.0.128
64-битная система: True
64-битный процесс: True
Количество процессоров: 1
Структура моего wwwroot такова:
'' '
img
pythonenv3.8
tests
__pycache__
app.py
ConceptofFunctionEvaluate.md
oryx-manifest.toml
README.md
requirements.txt
sleep_model.py
' ''
Коды внутри app.py таковы:
app.py
'' '
from flask import abort, Flask, jsonify, request
from werkzeug.exceptions import BadRequest
from logging import getLogger, StreamHandler, FileHandler, DEBUG, Formatter
import sleep_model
(application codes)
if __name__ == "__main__":
app.run(debug=True)
' ''
Импортируемая часть sleep_model.py выглядит так:
sleep: model.py
'' '
import numpy as np
'' '
Внутри файла require.txt это:
needs.text
' ''
flask
numpy
logging
werkzeug
'' '
В журналах действий GitHub кажется, что numpy успешно установлен.
Действия GitHub> build-and-deplo y> Сборка с использованием AppService-Buld
'' '
Run azure/appservice-build@v1
with:
platform: python
env:
pythonLocation: /opt/hostedtoolcache/Python/3.7.6/x64
/usr/bin/docker run --name c27d3147d163fea80a45388665e71d8a738aa0_a89863 --label c27d31 --workdir /github/workspace --rm -e pythonLocation -e INPUT_PLATFORM -e INPUT_SOURCE-DIRECTORY -e INPUT_PLATFORM-VERSION -e INPUT_OUTPUT-DIRECTORY -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e RUNNER_OS -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/sleep_apnea_api/sleep_apnea_api":"/github/workspace" c27d31:47d163fea80a45388665e71d8a738aa0 "" "python" "" ""
No source directory was provided -- the root of the repository ('GITHUB_WORKSPACE' environment variable) will be built: '/github/workspace'
No output directory was provided
Platform provided: 'python'
No platform version provided -- Oryx will determine the version.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 139 100 139 0 0 1564 0 --:--:-- --:--:-- --:--:-- 1579
Running command 'oryx build /github/workspace --platform python --enable-dynamic-install'
Build orchestrated by Microsoft Oryx, https://github.com/Microsoft/Oryx
You can report issues at https://github.com/Microsoft/Oryx/issues
Oryx Version : 0.2.20200312.2, Commit: d1cf6b4a89345b6a7d0dc25d0fbd67860862ee18, ReleaseTagName: 20200312.2
Build Operation ID: |NIcJoHTZQ4M=.3e27c1c4_
Repository Commit : a0f0cc373a543d1d26feb535d6ef12479abf0ff9
Source directory : /github/workspace
Destination directory: /github/workspace
Python Version: /opt/python/3.8.2/bin/python3
Python Virtual Environment: pythonenv3.8
Creating virtual environment ...
Activating virtual environment ...
Upgrading pip...
WARNING: The directory '/github/home/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
WARNING: The directory '/github/home/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pip
Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
Installing collected packages: pip
Found existing installation: pip 19.2.3
Uninstalling pip-19.2.3:
Successfully uninstalled pip-19.2.3
Successfully installed pip-20.0.2
Done in 2 sec(s).
Running pip install...
[10:50:41+0000] Collecting flask
[10:50:41+0000] Downloading Flask-1.1.2-py2.py3-none-any.whl (94 kB)
[10:50:41+0000] Collecting numpy
[10:50:41+0000] Downloading numpy-1.18.3-cp38-cp38-manylinux1_x86_64.whl (20.6 MB)
[10:50:42+0000] Collecting werkzeug
[10:50:42+0000] Downloading Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
[10:50:42+0000] Collecting Jinja2>=2.10.1
[10:50:43+0000] Downloading Jinja2-2.11.2-py2.py3-none-any.whl (125 kB)
[10:50:43+0000] Collecting click>=5.1
[10:50:43+0000] Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
[10:50:43+0000] Collecting itsdangerous>=0.24
[10:50:43+0000] Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
[10:50:43+0000] Collecting MarkupSafe>=0.23
[10:50:43+0000] Downloading MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl (32 kB)
[10:50:43+0000] Installing collected packages: MarkupSafe, Jinja2, werkzeug, click, itsdangerous, flask, numpy
[10:50:46+0000] Successfully installed Jinja2-2.11.2 MarkupSafe-1.1.1 click-7.1.2 flask-1.1.2 itsdangerous-1.1.0 numpy-1.18.3 werkzeug-1.0.1
Done running pip install.
Removing existing manifest file
Creating a manifest file...
Manifest file created.
Done in 11 sec(s).
' ''
Но регистрируются потоки в azure, 'ModuleNotFoundError 'occures:
log stream' ''
2020-04-28T10:55:11.375437745Z Updated PYTHONPATH to ':/home/site/wwwroot/pythonenv3.8/lib/python3.7/site-packages'
2020-04-28T10:55:12.774642858Z [2020-04-28 10:55:12 +0000] [38] [INFO] Starting gunicorn 20.0.4
2020-04-28T10:55:12.775951599Z [2020-04-28 10:55:12 +0000] [38] [INFO] Listening at: http://0.0.0.0:8000 (38)
2020-04-28T10:55:12.776515817Z [2020-04-28 10:55:12 +0000] [38] [INFO] Using worker: sync
2020-04-28T10:55:12.804942720Z [2020-04-28 10:55:12 +0000] [41] [INFO] Booting worker with pid: 41
2020-04-28T10:55:13.536643548Z [2020-04-28 10:55:13 +0000] [41] [ERROR] Exception in worker process
2020-04-28T10:55:13.536680450Z Traceback (most recent call last):
2020-04-28T10:55:13.536687550Z File "/opt/python/3.7.5/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2020-04-28T10:55:13.536693050Z worker.init_process()
2020-04-28T10:55:13.536697650Z File "/opt/python/3.7.5/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process
2020-04-28T10:55:13.536709650Z self.load_wsgi()
2020-04-28T10:55:13.536714651Z File "/opt/python/3.7.5/lib/python3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
2020-04-28T10:55:13.536719551Z self.wsgi = self.app.wsgi()
2020-04-28T10:55:13.536724251Z File "/opt/python/3.7.5/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
2020-04-28T10:55:13.536729151Z self.callable = self.load()
2020-04-28T10:55:13.536734151Z File "/opt/python/3.7.5/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
2020-04-28T10:55:13.536739151Z return self.load_wsgiapp()
2020-04-28T10:55:13.536743652Z File "/opt/python/3.7.5/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2020-04-28T10:55:13.536748552Z return util.import_app(self.app_uri)
2020-04-28T10:55:13.536753252Z File "/opt/python/3.7.5/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app
2020-04-28T10:55:13.536758252Z mod = importlib.import_module(module)
2020-04-28T10:55:13.536762952Z File "/opt/python/3.7.5/lib/python3.7/importlib/__init__.py", line 127, in import_module
2020-04-28T10:55:13.536767752Z return _bootstrap._gcd_import(name[level:], package, level)
2020-04-28T10:55:13.536772452Z File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
2020-04-28T10:55:13.536777653Z File "<frozen importlib._bootstrap>", line 983, in _find_and_load
2020-04-28T10:55:13.536782553Z File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
2020-04-28T10:55:13.536787353Z File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
2020-04-28T10:55:13.536792153Z File "<frozen importlib._bootstrap_external>", line 728, in exec_module
2020-04-28T10:55:13.536797153Z File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2020-04-28T10:55:13.536802053Z File "/home/site/wwwroot/app.py", line 15, in <module>
2020-04-28T10:55:13.536806954Z import sleep_model
2020-04-28T10:55:13.536811454Z File "/home/site/wwwroot/sleep_model.py", line 1, in <module>
2020-04-28T10:55:13.536816354Z import numpy as np
2020-04-28T10:55:13.536821154Z ModuleNotFoundError: No module named 'numpy'
2020-04-28T10:55:13.541040988Z [2020-04-28 10:55:13 +0000] [41] [INFO] Worker exiting (pid: 41)
2020-04-28T10:55:13.640991661Z [2020-04-28 10:55:13 +0000] [38] [INFO] Shutting down: Master
2020-04-28T10:55:13.649049717Z [2020-04-28 10:55:13 +0000] [38] [INFO] Reason: Worker failed to boot.
2020-04-28 10:55:14.734 ERROR - Container sleepapitest2_0_c4c43b35 for site sleepapitest2 has exited, failing site start
2020-04-28 10:55:14.736 ERROR - Container sleepapitest2_0_c4c43b35 didn't respond to HTTP pings on port: 8000, failing site start. See container logs for debugging.
2020-04-28 10:55:14.784 INFO - Stoping site sleepapitest2 because it failed during startup.
'' '
Тогда вы за беспокойство.