python-3.x 使用main函数运行dash应用程序

dpiehjr4  于 2023-10-21  发布在  Python
关注(0)|答案(1)|浏览(170)

我有一个dash应用程序(.py),运行的代码看起来像,

# whatever.py

from dash import Dash, html, dcc
import plotly.express as px
import pandas as pd

app = Dash()

# assume you have a "long-form" data frame
# see https://plotly.com/python/px-arguments/ for more options
df = pd.DataFrame({
    "Fruit": ["Apples", "Oranges", "Bananas", "Apples", "Oranges", "Bananas"],
    "Amount": [4, 1, 2, 2, 4, 5],
    "City": ["SF", "SF", "SF", "Montreal", "Montreal", "Montreal"]
})
fig = px.bar(df, x="Fruit", y="Amount", color="City", barmode="group")
app.layout = html.Div(children=[
    html.H1(children='Hello Global Apps'),
    html.Div(children='''
        Dash: A web application framework for your data.
    '''),
    dcc.Graph(
        id='example-graph',
        figure=fig
    )
])
if __name__ == "__main__":
    app.run_server(debug=True)

我使用HOST=<xxxx> PORT=<xxxx> python -m whatever执行此操作
我想从.py文件中删除if段,同时仍然运行dash服务器服务流量

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

有没有办法做到这一点?我愿意写另一个python Package 器文件,或者通过命令行执行任何东西。

请注意:我不能灵活地使用whatever.py,除了抽象出两条线段之外,我不能对它做任何修改。

一种抽象if段的方法是动态地将这个段附加到.py文件中。我们可以通过命令行在执行过程中做到这一点,但这似乎不是很稳定或可靠。

cpjpxq1n

cpjpxq1n1#

一种方法是创建一个新的Python脚本来运行服务器,名为runner.py。在这个文件中,您必须从dash应用程序文件导入app对象(由于您没有提供dash应用程序的文件名,出于演示目的,我假设它是dash_application.py)。
runner.py中:

from dash_application import app
app.run_server(debug=True)

现在,您可以从dash应用程序文件中删除if __name__ == "__main__":段,并通过命令行运行应用程序:

$ python3 runner.py

相关问题