烧瓶 : plotly : 错误: 模块"索引"没有属性"app.server"



上下文

我正在使用Visual Studio Code(VSCode)调试应用程序。

  • 该应用程序主要依赖于 https://plot.ly、https://palletsprojects.com/p/flask、https://pandas.pydata.org/和 https://numpy.org/

断点不会被命中!

  • 当我使用 launch.json 时,断点不会命中(参见 [1])

  • 我可以使用这个 launch.json 进行调试(参见 [2]),但调试器不会在断点处停止!

我希望 VSCode 在必要时在我的断点处停止

**启动.json命中断点的正确配置是什么?

感谢您花时间帮助我!

项目的层次结构

  • 启动.json
  • index.py 参见 [4]
  • app.py 参见 [3]
  • 页面
    • index.py
    • transactions.py
  • launch.json在下面描述[1]

问题:错误:模块"索引"没有属性"app.server">

单击"> F5 开始调试"后显示错误消息 =错误:模块"索引"没有属性"app.server">

我尝试了数十种方法来设置"FLASK_APP:"index:app.server",但它们会生成各种错误消息:

  • "FLASK_APP":"index:app.server">生成此错误错误:未从"index:app"获取有效的 Flask 应用程序。

  • "FLASK_APP":"index.py">生成此错误错误:无法在模块"索引"中找到 Flask 应用程序或工厂。使用 "FLASK_APP=index:name 指定一个。

获取信息 : 枪角兽司令部(工作)

以下是运行 plotly 应用程序azure-pipelines.yml可用的命令:

  • gunicorn --bind=0.0.0.0 --timeout 600 index:app.server

附加文件

[1] launch.json - 非工作

{
"version": "0.2.0",
"configurations": [
{
"name": "Flask",
"type": "python",
"request": "launch",
"module": "flask",
"env": {
"FLASK_APP": "index:app.server",
"FLASK_ENV": "development",
"FLASK_DEBUG": "1",
"FLASK_RUN_PORT": "8052"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"jinja": true
}
]
}

[2] launch.json - 工作但未命中断点

{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${workspaceRoot}\index.py",
"console": "integratedTerminal"
}
]
}

[3] webapp.py

# -*- coding: utf-8 -*-
import dash
app = dash.Dash(
__name__, meta_tags=[{"name": "viewport",
"content": "width=device-width, initial-scale=1"}]
)
server = app.server
app.config.suppress_callback_exceptions = True

index.py - 应用程序的根目录

# -*- coding: utf-8 -*-
import dash_html_components as html
import dash_core_components as dcc
from webapp import app
from dash.dependencies import Input, Output
from pages import (
transactions, index)

# Describe the layout/ UI of the app
app.layout = html.Div([
dcc.Location(id="url", refresh=False),
html.Div(id="page-content")
])

# Update page
@app.callback(Output("page-content", "children"),
[Input("url", "pathname")])
def display_page(pathname):
if pathname == "/dash/index":
return index.layout
if pathname == "/dash/transactions":
return transactions.layout
else:
return index.layout

if __name__ == "__main__":
app.run_server(debug=True, port=8051)

您的 [1] 示例不起作用,因为您将FLASK_APP设置为index:app.server,这会尝试在index模块上查找名为app.server的属性。属性名称不能有点(您可以通过导入该模块并尝试getattr(index, "app.server")来验证这一点)。你应该能够简单地说FLASK_APPindex让它工作。

有关更多详细信息,请参阅有关应用发现的 Flask 文档。

相关内容

  • 没有找到相关文章

最新更新