Hello!
I’m writing a simple code to list nearby bluetooth devices.
import streamlit as st
import asyncio
from bleak import BleakClient, BleakScanner
async def connect_to_device():
scanner = BleakScanner()
devices = await scanner.discover(timeout=1.0)
for d in devices:
print(d)
st.write(d)
asyncio.run(connect_to_device())
At the first run, it works: it writes the list of the devices.
but when I refresh the page, it shows the error - “RuntimeError: Event loop is closed”
2022-08-23 10:25:47.026 Uncaught app exception
Traceback (most recent call last):
File "/home/mulkkyul/22_BLE/venv/lib/python3.8/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 556, in _run_script
exec(code, module.__dict__)
File "/home/mulkkyul/22_BLE/python/st_00_home.py", line 12, in <module>
asyncio.run(connect_to_device())
File "/usr/lib/python3.8/asyncio/runners.py", line 43, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.8/asyncio/base_events.py", line 608, in run_until_complete
return future.result()
File "/home/mulkkyul/22_BLE/python/st_00_home.py", line 7, in connect_to_device
devices = await scanner.discover(timeout=1.0)
File "/home/mulkkyul/22_BLE/venv/lib/python3.8/site-packages/bleak/backends/scanner.py", line 116, in discover
async with cls(**kwargs) as scanner:
File "/home/mulkkyul/22_BLE/venv/lib/python3.8/site-packages/bleak/backends/scanner.py", line 96, in __aenter__
await self.start()
File "/home/mulkkyul/22_BLE/venv/lib/python3.8/site-packages/bleak/backends/bluezdbus/scanner.py", line 137, in start
self._stop = await manager.active_scan(
File "/home/mulkkyul/22_BLE/venv/lib/python3.8/site-packages/bleak/backends/bluezdbus/manager.py", line 384, in active_scan
reply = await self._bus.call(
File "/home/mulkkyul/22_BLE/venv/lib/python3.8/site-packages/dbus_next/aio/message_bus.py", line 303, in call
self._call(msg, reply_handler)
File "/home/mulkkyul/22_BLE/venv/lib/python3.8/site-packages/dbus_next/message_bus.py", line 588, in _call
self.send(msg)
File "/home/mulkkyul/22_BLE/venv/lib/python3.8/site-packages/dbus_next/aio/message_bus.py", line 326, in send
self._writer.schedule_write(msg, future)
File "/home/mulkkyul/22_BLE/venv/lib/python3.8/site-packages/dbus_next/aio/message_bus.py", line 85, in schedule_write
self.loop.add_writer(self.fd, self.write_callback)
File "/usr/lib/python3.8/asyncio/selector_events.py", line 337, in add_writer
return self._add_writer(fd, callback, *args)
File "/usr/lib/python3.8/asyncio/selector_events.py", line 287, in _add_writer
self._check_closed()
File "/usr/lib/python3.8/asyncio/base_events.py", line 504, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
I don’t think this is the “streamlit issue”, but has anyone run into the same issue?
Any pointers would be appreciated.
Thank you!
Python 3.8.0
Streamlit, version 1.12.0
Ubuntu 18.04