【问题标题】:Application Error Azure : ModuleNotFoundError: No module named 'flask_socketio'应用程序错误 Azure:ModuleNotFoundError:没有名为“flask_socketio”的模块
【发布时间】:2023-03-22 06:21:01
【问题描述】:

我正在尝试在 Azure 上使用 Gunicorn 部署 Flask 应用程序。我的应用程序可以在 localhost 甚至 Heroku 上完美运行,但是当我尝试在 Azure Web App 上部署它时,它没有构建并显示:ModuleNotFoundError: No module named 'flask_socketio'。 在部署到 Azure 之前,我已经设置了一个虚拟环境并正确安装了所有包。我正在使用Azure-CLI 来部署应用程序。我已经在配置中打开了 web socket 选项并在 Python 3.8 上运行我的应用程序。 出于测试目的,我部署了一个 Smiple Flask 应用程序,它已成功部署并正在运行。

我的项目的 Github 链接:FlaskWebcam

错误日志:

Starting Live Log Stream ---

2020-09-13T19:56:18.960Z INFO  - Starting container for site
2020-09-13T19:56:18.963Z INFO  - docker run -d -p 9708:8000 --name inverseflask_0_16637254 -e WEBSITE_SITE_NAME=InverseFlask -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=inverseflask.azurewebsites.net -e WEBSITE_INSTANCE_ID=26433a6b0a3346c389469a9d486d0892e34237dd74d5333601dda5fe35c941b8 -e HTTP_LOGGING_ENABLED=1 appsvc/python:3.8_20200707.6
2020-09-13T19:56:22.884Z INFO  - Initiating warmup request to container inverseflask_0_16637254 for site inverseflask
2020-09-13T19:56:38.900Z INFO  - Waiting for response to warmup request for container inverseflask_0_16637254. Elapsed time = 16.0166497 sec
2020-09-13T19:56:21.995899368Z
2020-09-13T19:56:21.995956370Z   _____
2020-09-13T19:56:21.995966670Z   /  _  \ __________ _________   ____
2020-09-13T19:56:21.995974271Z  /  /_\  \___   /  |  \_  __ \_/ __ \
2020-09-13T19:56:21.995981571Z /    |    \/    /|  |  /|  | \/\  ___/
2020-09-13T19:56:21.995988971Z \____|__  /_____ \____/ |__|    \___  >
2020-09-13T19:56:21.995996371Z         \/      \/                  \/
2020-09-13T19:56:22.001078169Z
2020-09-13T19:56:22.001105870Z A P P   S E R V I C E   O N   L I N U X
2020-09-13T19:56:22.001114471Z
2020-09-13T19:56:22.001121571Z Documentation: http://aka.ms/webapp-linux
2020-09-13T19:56:22.001128571Z Python 3.8.3
2020-09-13T19:56:22.001251176Z Note: Any data outside '/home' is not persisted
2020-09-13T19:56:22.182082317Z Starting OpenBSD Secure Shell server: sshd.
2020-09-13T19:56:22.229719372Z App Command Line not configured, will attempt auto-detect
2020-09-13T19:56:22.230599206Z Launching oryx with: create-script -appPath /home/site/wwwroot -output /opt/startup/startup.sh -virtualEnvName antenv -defaultApp /opt/defaultsite
2020-09-13T19:56:22.323448922Z Found build manifest file at '/home/site/wwwroot/oryx-manifest.toml'. Deserializing it...
2020-09-13T19:56:22.329158744Z Build Operation ID: |Y6gr/BhPUcQ=.36185211_
2020-09-13T19:56:22.330353391Z Oryx Version: 0.2.20200706.2, Commit: 42be45d884938c3c818ba08e9e4760b1136fd9b3, ReleaseTagName: 20200706.2
2020-09-13T19:56:23.087122158Z Detected an app based on Flask
2020-09-13T19:56:23.344716588Z Generating `gunicorn` command for 'application:app'
2020-09-13T19:56:23.837293868Z Writing output script to '/opt/startup/startup.sh'
2020-09-13T19:56:24.399410856Z Found virtual environment .tar.gz archive.
2020-09-13T19:56:24.400232088Z Removing existing virtual environment directory /antenv...
2020-09-13T19:56:24.419407435Z Extracting to directory /antenv...
2020-09-13T19:56:46.138875734Z Using packages from virtual environment antenv located at /antenv.
2020-09-13T19:56:46.145147100Z Updated PYTHONPATH to ':/antenv/lib/python3.8/site-packages'
2020-09-13T19:56:48.737945237Z [2020-09-13 19:56:48 +0000] [41] [INFO] Starting gunicorn 20.0.4
2020-09-13T19:56:48.742939236Z [2020-09-13 19:56:48 +0000] [41] [INFO] Listening at: http://0.0.0.0:8000 (41)
2020-09-13T19:56:48.743827471Z [2020-09-13 19:56:48 +0000] [41] [INFO] Using worker: sync
2020-09-13T19:56:48.756394071Z [2020-09-13 19:56:48 +0000] [43] [INFO] Booting worker with pid: 43
2020-09-13T19:56:49.372391696Z [2020-09-13 19:56:49 +0000] [43] [ERROR] Exception in worker process
2020-09-13T19:56:49.372452399Z Traceback (most recent call last):
2020-09-13T19:56:49.372464099Z   File "/opt/python/3.8.3/lib/python3.8/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2020-09-13T19:56:49.372502201Z     worker.init_process()
2020-09-13T19:56:49.372511001Z   File "/opt/python/3.8.3/lib/python3.8/site-packages/gunicorn/workers/base.py", line 119, in init_process
2020-09-13T19:56:49.372518901Z     self.load_wsgi()
2020-09-13T19:56:49.372526102Z   File "/opt/python/3.8.3/lib/python3.8/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
2020-09-13T19:56:49.372533802Z     self.wsgi = self.app.wsgi()
2020-09-13T19:56:49.372540902Z   File "/opt/python/3.8.3/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
2020-09-13T19:56:49.372548402Z     self.callable = self.load()
2020-09-13T19:56:49.372555403Z   File "/opt/python/3.8.3/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
2020-09-13T19:56:49.372563003Z     return self.load_wsgiapp()
2020-09-13T19:56:49.372570103Z   File "/opt/python/3.8.3/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2020-09-13T19:56:49.372577604Z     return util.import_app(self.app_uri)
2020-09-13T19:56:49.372584604Z   File "/opt/python/3.8.3/lib/python3.8/site-packages/gunicorn/util.py", line 358, in import_app
2020-09-13T19:56:49.372591904Z     mod = importlib.import_module(module)
2020-09-13T19:56:49.372598904Z   File "/opt/python/3.8.3/lib/python3.8/importlib/__init__.py", line 127, in import_module
2020-09-13T19:56:49.372606505Z     return _bootstrap._gcd_import(name[level:], package, level)
2020-09-13T19:56:49.372613605Z   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
2020-09-13T19:56:49.372622005Z   File "<frozen importlib._bootstrap>", line 991, in _find_and_load
2020-09-13T19:56:49.372629606Z   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
2020-09-13T19:56:49.372637306Z   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
2020-09-13T19:56:49.372644706Z   File "<frozen importlib._bootstrap_external>", line 783, in exec_module
2020-09-13T19:56:49.372652207Z   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2020-09-13T19:56:49.372659707Z   File "/home/site/wwwroot/application.py", line 4, in <module>
2020-09-13T19:56:49.372667207Z     from flask_socketio import SocketIO
2020-09-13T19:56:49.372674407Z ModuleNotFoundError: No module named 'flask_socketio'
2020-09-13T19:56:49.380001099Z [2020-09-13 19:56:49 +0000] [43] [INFO] Worker exiting (pid: 43)
2020-09-13T19:56:49.465561206Z [2020-09-13 19:56:49 +0000] [41] [INFO] Shutting down: Master
2020-09-13T19:56:49.466915059Z [2020-09-13 19:56:49 +0000] [41] [INFO] Reason: Worker failed to boot.
2020-09-13T19:56:54.880Z ERROR - Container inverseflask_0_16637254 for site inverseflask has exited, failing site start
2020-09-13T19:56:54.893Z ERROR - Container inverseflask_0_16637254 didn't respond to HTTP pings on port: 8000, failing site start. See container logs for debugging.
2020-09-13T19:56:54.903Z INFO  - Stopping site inverseflask because it failed during startup.

【问题讨论】:

    标签: python azure gunicorn azure-web-app-service flask-socketio


    【解决方案1】:

    从你的描述看来你已经安装了这个模块,但是我想知道你是怎么部署的?一般情况下,我们需要一个名为 requirements.txt 的文件来安装依赖包。本地安装是没用的。也需要在requirements.txt中指定,然后部署。

    看看这个:

    https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/python-webapp?view=azure-devops

    【讨论】:

    • 我确实有 requirements.txt,我使用上述方式仍然显示应用程序错误。
    【解决方案2】:

    为了它的价值,我正在尝试做一些非常相似的事情。看来我能够在 webapp 上安装 flask_socketio。我主要遵循本教程:Create a Python app in Azure App Service on Linux。话虽如此,我首先在我的 requirements.txt 中包含了这一行:flask_socketio==4.3.1,但我得到了你的错误。然后,我将它 pip 安装到我的本地 python 虚拟环境中(pip install flask_socketio==4.3.1),重新部署后似乎修复了错误。

    不过,我仍然收到错误消息。从浏览器网络选项卡我看到,例如: index.js:83 POST https://.azurewebsites.net/socket.io/?EIO=3&transport=polling&t=NITSD38&sid=0439a49c525247a79bf2b80792ba2636 400 (BAD REQUEST)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 2016-12-18
      • 2019-08-21
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2017-01-24
      相关资源
      最近更新 更多