在我的本地机器上,我使用plotly
和Dash。我从命令行运行python文件(Windows Powershell或cmd.exe,但两者的行为相同),并希望
- 让它在一分钟左右后停止dash服务器,或者
- 在输入(“问题”)上键入“是”后让它停止。
虽然输出很好,但问题是,它甚至不会到达app.run_server(...)之后的任何一行,除非我在shell上键入Ctrl-C让它退出。
我想像 * app.run_server(debug=True, runtime = 360)
应该存在,但广泛的谷歌搜索没有帮助...
我也试过使用 subprocess,但没有用。我只是不知道如何以及从哪里开始...比如,如何将东西连接到它,甚至在Popen()
中插入一个python命令,比如app.run_server(...)
,作为shell命令,毕竟它不是。
这里是一个最小的工作示例,我应该如何修改它以使其停止?
#testingdash.py
import os
import signal
from dash import Dash, html, dcc
app = Dash(__name__)
app.layout = html.Div([
dcc.Textarea(
id='textarea-example',
value='Lorem ipsum test working example',
style={'width': '100%', 'height': 300},
),
html.Div(id='textarea-example-output', style={'whiteSpace': 'pre-line'})
])
if __name__ == '__main__':
app.run_server(debug=True)
print("Does not even reach this before ctrl-C")
#quit()
os.kill(os.getpid(), signal.SIGTERM)
1条答案
按热度按时间7xzttuei1#
问题是
app.run_server(debug=True)
是一个阻塞调用,这意味着它将阻塞后面的任何代码的执行,直到手动停止服务器。据我所知,你可以在一个单独的线程或进程中运行达世币服务器来实现这一点。也许可以试试这样的东西: