Как сделать последовательную связь с сервера Python Dash - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь отобразить данные, полученные с com-порта, с помощью pyserial, используя Dash Framework. Эта структура требует веб-сервера для запуска. Когда я устанавливаю последовательную связь без черты, просто используя обычный python, он работает нормально, но когда я пытаюсь использовать Dash, который запускает веб-сервер и (я предполагаю) запускает код оттуда, я получаю SerialException: не могу открыть порт 'COM3': PermissionError (13, «Доступ запрещен.», None, 5).

Для Dash Framework я следовал этому уроку: https://www.youtube.com/watch?v=37Zj955LFT0&list=PLQVvvaa0QuDfsGImWNt1eUEveHOepkjqt&index=4

Я новичок в Dash и Python в целом, поэтому я был бы признателен за любой совет о том, как сделать эту работу

1 Ответ

0 голосов
/ 02 апреля 2019

У меня была такая же проблема, и отключение режима отладки решило ее для меня:

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

Однако, когда режим отладки был выключен, приложение перезагружалось при запуске и снова пыталось открыть последовательный порт (когда он уже был открыт). Поэтому я изменил use_reloader на False, и оказалось, что вы можете оставить его в режиме отладки (или нет), например:

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

Я не уверен, как некоторые из официальных примеров работают без отключения перезагрузки, но у них есть другой код после операторов импорта:

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

и предыдущий коммит удалил следующую строку после двух предыдущих:

app.scripts.config.serve_locally = True

Так что может позаботиться об этом в ситуациях, когда вам нужно перезагрузить компьютер (в любом случае, я не уверен, что такое перезагрузка), но я не проверил это достаточно, чтобы понять.

...