将Flask App部署到Azure时WSGI错误

PGHE

使用Flask部署Azure Web时,始终出现以下错误:

Unhandled exception in wfastcgi.py: Traceback (most recent call last):
  File "D:\home\python364x64\wfastcgi.py", line 791, in main
    env, handler = read_wsgi_handler(response.physical_path)
  File "D:\home\python364x64\wfastcgi.py", line 633, in read_wsgi_handler
    handler = get_wsgi_handler(os.getenv("WSGI_HANDLER"))
  File "D:\home\python364x64\wfastcgi.py", line 603, in get_wsgi_handler
    handler = getattr(handler, name)
AttributeError: module 'app' has no attribute 'app'

这是我的应用程序的结构:

|-app
    |- __init__.py
    |- mod1
    |- mod2
|-config.py
|-runserver.py
|-web.config

这是我的web.config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="WSGI_HANDLER" value="app.app"/>
    <add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
    <add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
  </appSettings>
  <system.webServer>
    <handlers>
      <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\python364x64\python.exe|D:\home\python364x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
    </handlers>
  </system.webServer>
</configuration>

config.py:

import os

app_dir = os.path.abspath(os.path.dirname(__file__))

class BaseConfig:
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'A SECRET KEY'

class DevelopementConfig(BaseConfig):
    DEBUG = True

runserver.py:

import os
from app import db, create_app

app = create_app(os.getenv('FLASK_ENV') or 'config.DevelopementConfig')


if __name__ == '__main__':   
    app.run()

和应用。初始化.py:

from flask import Flask
def create_app(config):
    app = Flask(__name__)
    app.config.from_object(config)
    return app

我尝试将wsgi.py包含在内:

from app import app as application

与runserver.py处于同一级别,但仍然出现上述错误。我在这里想念什么?

精细

那么,WSGI如何工作?它启动,导入您的应用程序并调用其方法来处理请求。<add key="WSGI_HANDLER" value="app.app"/>对于WSGI意味着导入模块应用程序并从中获取变量应用程序但是在导入app.__init__.py之后,只有Flaskcreate_app变量,具有Flask-class和create_app-function。因此,您应该在WSGI_HANDLER中设置指向flask应用程序的值,runserver.app或者app.create_app()或者我不知道Azure使用正确的语法将应用程序作为函数进行处理的确切程度,但是可以)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将ASP.NET App部署到Azure Web App时出现HTTP 403错误

将Azure功能部署到Azure时出现bcrypt错误

Azure Flask部署-WSGI界面

将Flask应用程序部署到heroku会导致create_app()出现500错误

将 Flask 应用程序部署到 AWS beanstalk 时出现错误 [Errno 2]

将Python Flask应用程序部署到Google App Engine时,没有名为“ flask”的模块

“ /”应用程序中的服务器错误。无法找到该资源。(404)将WCF服务部署到Azure App Service时

将ASP.NET Core部署到Azure Web App服务错误

收到错误:409将WebApp部署到Azure时发生冲突

将Arm模板部署到Azure时发生内部服务器错误

将智能合约从 remix 部署到 azure 区块链时出现问题 - 错误

将.Net Core 3.0 Web API部署到Azure App Service时出错

将MVC应用程序部署到Azure App Service时的POSTS问题

将ASP.Net 5 Web App部署到Azure时如何删除现有文件

将ASP.NET核心应用程序部署到Azure App Service时出错

Azure YAML部署失败,并显示“错误:无法将Web包部署到App Service。冲突(CODE:409)”

在Apache2上尝试使用WSGI部署Flask时如何解决导入错误

使用mod_wsgi / Apache2部署Flask App时出现Numpy ImportError

通过Azure Devops将.Net Core 3.1 Web App部署到Azure Linux Web Service时出错

将Webapp部署到Azure时加载msvcr100.dll(错误代码:126)时出错

通过Visual Studio 2019将Logic App部署到Azure

将Express API部署到Azure App Services

是否将React App部署到Azure Web?

使用Entity Framework将Web api部署到Azure,工作1小时,现在出现错误500

将数据库部署到SQL Azure时出错

将ARM模板部署到Azure时出错

将Django应用部署到Heroku时Collectstatic错误

将NodeJS部署到Elastic Beanstalk时出现NPM错误

将Django应用部署到IBM Bluemix时出现错误