For an unrelated reason, I had to rebuild my osmocom op25 pi. I must have missed something. The receive audio, the Home screen and RX screen works fine. But when going to Logs I get an error "the greenlet library is required to use this function". The full error text follows but I think I missed something. Thank you.
File "/home/pi/op25/op25/gr-op25_repeater/apps/oplog/op25/__init__.py", line 34, in <module>
from datatables import ColumnDT, DataTables
File "/home/pi/.local/lib/python3.7/site-packages/datatables/__init__.py", line 4, in <module>
from datatables.datatables import DataTables
File "/home/pi/.local/lib/python3.7/site-packages/datatables/datatables.py", line 6, in <module>
from sqlalchemy.dialects import mysql, postgresql, sqlite
File "/home/pi/.local/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/__init__.py", line 57, in <module>
from . import asyncmy # noqa
File "/home/pi/.local/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/asyncmy.py", line 175, in <module>
class AsyncAdapt_asyncmy_connection(AdaptedConnection):
File "/home/pi/.local/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/asyncmy.py", line 184, in AsyncAdapt_asyncmy_connection
def __init__(self, dbapi, connection):
self.dbapi = dbapi
self._connection = connection
self._execute_mutex = asyncio.Lock()
@asynccontextmanager
async def _mutex_and_adapt_errors(self):
async with self._execute_mutex:
try:
yield
except AttributeError:
File "/home/pi/.local/lib/python3.7/site-packages/sqlalchemy/util/concurrency.py", line 63, in asynccontextmanager
def _util_async_run_coroutine_function(fn, *arg, **kw): # noqa F81
_not_implemented()
def asynccontextmanager(fn, *arg, **kw): # noqa F81
_not_implemented()
File "/home/pi/.local/lib/python3.7/site-packages/sqlalchemy/util/concurrency.py", line 38, in _not_implemented
if not compat.py3k:
raise ValueError("Cannot use this function in py2.")
else:
raise ValueError(
"the greenlet library is required to use this function."
)
def is_exit_exception(e): # noqa F811
return not isinstance(e, Exception)
ValueError: the greenlet library is required to use this function.
File "/home/pi/op25/op25/gr-op25_repeater/apps/oplog/op25/__init__.py", line 34, in <module>
from datatables import ColumnDT, DataTables
File "/home/pi/.local/lib/python3.7/site-packages/datatables/__init__.py", line 4, in <module>
from datatables.datatables import DataTables
File "/home/pi/.local/lib/python3.7/site-packages/datatables/datatables.py", line 6, in <module>
from sqlalchemy.dialects import mysql, postgresql, sqlite
File "/home/pi/.local/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/__init__.py", line 57, in <module>
from . import asyncmy # noqa
File "/home/pi/.local/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/asyncmy.py", line 175, in <module>
class AsyncAdapt_asyncmy_connection(AdaptedConnection):
File "/home/pi/.local/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/asyncmy.py", line 184, in AsyncAdapt_asyncmy_connection
def __init__(self, dbapi, connection):
self.dbapi = dbapi
self._connection = connection
self._execute_mutex = asyncio.Lock()
@asynccontextmanager
async def _mutex_and_adapt_errors(self):
async with self._execute_mutex:
try:
yield
except AttributeError:
File "/home/pi/.local/lib/python3.7/site-packages/sqlalchemy/util/concurrency.py", line 63, in asynccontextmanager
def _util_async_run_coroutine_function(fn, *arg, **kw): # noqa F81
_not_implemented()
def asynccontextmanager(fn, *arg, **kw): # noqa F81
_not_implemented()
File "/home/pi/.local/lib/python3.7/site-packages/sqlalchemy/util/concurrency.py", line 38, in _not_implemented
if not compat.py3k:
raise ValueError("Cannot use this function in py2.")
else:
raise ValueError(
"the greenlet library is required to use this function."
)
def is_exit_exception(e): # noqa F811
return not isinstance(e, Exception)
ValueError: the greenlet library is required to use this function.