2

我正在尝试使用 Dash 框架绘制从带有 pyserial 的 com 端口接收的数据。这个框架需要网络服务器才能运行。当我在没有破折号的情况下建立串行通信时,只使用常规 python 它工作正常,但是当我尝试使用启动 web 服务器并(我猜)从那里运行代码的破折号时,我得到 SerialException:无法打开端口“COM3”: PermissionError(13, '访问被拒绝。', None, 5).

对于 Dash 框架,我正在关注本教程:https

://www.youtube.com/watch?v=37Zj955LFT0&list=PLQVvvaa0QuDfsGImWNt1eUEveHOepkjqt&index= 4 我一般是 Dash 和 python 的新手,所以我将不胜感激有关如何使这项工作的任何提示

4

1 回答 1

1

我遇到了同样的问题,关闭调试模式为我解决了这个问题:

if __name__ == '__main__':
    app.run_server(debug=False)

但是,当调试模式关闭时,应用程序在启动时重新加载并尝试再次打开串行端口(当它已经打开时)。所以我改成use_reloaderFalse,结果你可以像这样将它保持在调试模式(或不):

if __name__ == '__main__':
    app.run_server(debug=True, use_reloader=False)

我不确定一些官方示例如何在不禁用重新加载的情况下工作,但它们在 import 语句之后还有其他代码:

app = dash.Dash(__name__)
server = app.server

并且先前的提交删除了前两行之后的以下行:

app.scripts.config.serve_locally = True

因此,在需要重新加载的情况下(不确定重新加载会做什么),这可能会解决它,但我还没有对其进行足够的测试来理解。

于 2019-04-02T10:11:06.623 回答