我有一个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文件中。我们可以通过命令行在执行过程中做到这一点,但这似乎不是很稳定或可靠。
1条答案
按热度按时间cpjpxq1n1#
一种方法是创建一个新的Python脚本来运行服务器,名为
runner.py
。在这个文件中,您必须从dash应用程序文件导入app
对象(由于您没有提供dash应用程序的文件名,出于演示目的,我假设它是dash_application.py
)。在
runner.py
中:现在,您可以从dash应用程序文件中删除
if __name__ == "__main__":
段,并通过命令行运行应用程序: