-
-
Notifications
You must be signed in to change notification settings - Fork 546
Description
Describe the problem/bug
Mycodo installation fails on a new Debian 13.2 with an Raspberry PI 3B as the widget generation fails
Versions:
- Mycodo Version: 8.16.2
- Raspberry Pi Version: 3B
- Raspbian OS Version: Trixie - 13.2
Reproducibility
Please list specific setup details that are involved and the steps to reproduce the behavior:
- Flashing SD card via Raspberry Pi Imager; Options for SSID, user and SSH access were set
- Login via SSH
- Execute 'curl -L https://kizniche.github.io/Mycodo/install | bash' within the SSH session
- Choosing the influx-DB standard option
- Several issues occure:
a. Package libatlas-base-dev is not available
b. /opt/Mycodo/mycodo/scripts/upgrade_commands.sh: line 460: gawk: command not found
c. ln: failed to create symbolic link '/etc/nginx/sites-enabled/default': No such file or directory
d. *a lot of traceback errors occure between 'Collecting MarkupSafe==2.1.3' and 'Collecting testfixtures==7.0.2' - manually installed gawk and nginx via apt 'apt install gawk nginx'
- *manually installed libatlas3-base as it's a transitional package (https://packages.debian.org/en/sid/libatlas-base-dev)
- *manually installed the pip requirements '../env/bin/pip3 install -r requirements.txt' (this time without any errors)
- A new run of the setup.sh script brought up a lot of errors in the 'Generating widget HTML files' area (see 'screenshots' attached
- The script fails afterwards with '#### Could not connect to http://localhost. Waiting 60 seconds then trying again (up to 10 times)...'
- When I do it via PC I get an '403 forbidden' (and yes I saw the 403 Forbidden issue, but it's for Bullseye and not for Trixie)
Expected behavior
A setup script running without errors
Screenshots
This is the recent output I get in the setup.log file within the 'generating widget HTML file' area
`#### Generating widget HTML files
Path: /opt/Mycodo/mycodo/widgets/widget_graph_synchronous.py, Type: widgets
Could not load module: Traceback (most recent call last):
File "/opt/Mycodo/mycodo/utils/modules.py", line 16, in load_module_from_file
spec.loader.exec_module(module_custom)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "", line 1026, in exec_module
File "", line 488, in _call_with_frames_removed
File "/opt/Mycodo/mycodo/widgets/widget_graph_synchronous.py", line 37, in
from mycodo.databases.models import Conversion
File "/opt/Mycodo/mycodo/databases/init.py", line 7, in
from mycodo.mycodo_flask.extensions import db
File "/opt/Mycodo/mycodo/mycodo_flask/extensions.py", line 12, in
from flask_sqlalchemy import SQLAlchemy
File "/opt/Mycodo/env/lib/python3.13/site-packages/flask_sqlalchemy/init.py", line 5, in
from .extension import SQLAlchemy
File "/opt/Mycodo/env/lib/python3.13/site-packages/flask_sqlalchemy/extension.py", line 9, in
import sqlalchemy as sa
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/init.py", line 13, in
from .engine import AdaptedConnection as AdaptedConnection
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/init.py", line 18, in
from . import events as events
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/events.py", line 19, in
from .base import Connection
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 30, in
from .interfaces import BindTyping
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/interfaces.py", line 38, in
from ..sql.compiler import Compiled as Compiled
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/init.py", line 14, in
from .compiler import COLLECT_CARTESIAN_PRODUCTS as COLLECT_CARTESIAN_PRODUCTS
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/compiler.py", line 61, in
from . import crud
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/crud.py", line 34, in
from . import dml
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/dml.py", line 34, in
from . import util as sql_util
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/util.py", line 46, in
from .ddl import sort_tables as sort_tables # noqa: F401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/ddl.py", line 30, in
from .elements import ClauseElement
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 810, in
class SQLCoreOperations(Generic[_T_co], ColumnOperators, TypingOnly):
...<472 lines>...
...
File "/usr/lib/python3.13/typing.py", line 1257, in _generic_init_subclass
super(Generic, cls).init_subclass(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 1988, in init_subclass
raise AssertionError(
...<2 lines>...
)
AssertionError: Class <class 'sqlalchemy.sql.elements.SQLCoreOperations'> directly inherits TypingOnly but has additional attributes {'firstlineno', 'static_attributes'}.
Path: /opt/Mycodo/mycodo/widgets/widget_camera.py, Type: widgets
Could not load module: Traceback (most recent call last):
File "/opt/Mycodo/mycodo/utils/modules.py", line 16, in load_module_from_file
spec.loader.exec_module(module_custom)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "", line 1026, in exec_module
File "", line 488, in _call_with_frames_removed
File "/opt/Mycodo/mycodo/widgets/widget_camera.py", line 33, in
from mycodo.mycodo_client import DaemonControl
File "/opt/Mycodo/mycodo/mycodo_client.py", line 37, in
from mycodo.databases.models import SMTP, Misc
File "/opt/Mycodo/mycodo/databases/init.py", line 7, in
from mycodo.mycodo_flask.extensions import db
File "/opt/Mycodo/mycodo/mycodo_flask/extensions.py", line 12, in
from flask_sqlalchemy import SQLAlchemy
File "/opt/Mycodo/env/lib/python3.13/site-packages/flask_sqlalchemy/init.py", line 5, in
from .extension import SQLAlchemy
File "/opt/Mycodo/env/lib/python3.13/site-packages/flask_sqlalchemy/extension.py", line 9, in
import sqlalchemy as sa
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/init.py", line 13, in
from .engine import AdaptedConnection as AdaptedConnection
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/init.py", line 18, in
from . import events as events
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/events.py", line 19, in
from .base import Connection
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 30, in
from .interfaces import BindTyping
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/interfaces.py", line 38, in
from ..sql.compiler import Compiled as Compiled
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/init.py", line 14, in
from .compiler import COLLECT_CARTESIAN_PRODUCTS as COLLECT_CARTESIAN_PRODUCTS
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/compiler.py", line 61, in
from . import crud
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/crud.py", line 34, in
from . import dml
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/dml.py", line 34, in
from . import util as sql_util
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/util.py", line 46, in
from .ddl import sort_tables as sort_tables # noqa: F401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/ddl.py", line 30, in
from .elements import ClauseElement
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 810, in
class SQLCoreOperations(Generic[_T_co], ColumnOperators, TypingOnly):
...<472 lines>...
...
File "/usr/lib/python3.13/typing.py", line 1257, in _generic_init_subclass
super(Generic, cls).init_subclass(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 1988, in init_subclass
raise AssertionError(
...<2 lines>...
)
AssertionError: Class <class 'sqlalchemy.sql.elements.SQLCoreOperations'> directly inherits TypingOnly but has additional attributes {'firstlineno', 'static_attributes'}.
Path: /opt/Mycodo/mycodo/widgets/widget_python_code.py, Type: widgets
Could not load module: Traceback (most recent call last):
File "/opt/Mycodo/mycodo/utils/modules.py", line 16, in load_module_from_file
spec.loader.exec_module(module_custom)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "", line 1026, in exec_module
File "", line 488, in _call_with_frames_removed
File "/opt/Mycodo/mycodo/widgets/widget_python_code.py", line 36, in
from mycodo.databases import set_uuid
File "/opt/Mycodo/mycodo/databases/init.py", line 7, in
from mycodo.mycodo_flask.extensions import db
File "/opt/Mycodo/mycodo/mycodo_flask/extensions.py", line 12, in
from flask_sqlalchemy import SQLAlchemy
File "/opt/Mycodo/env/lib/python3.13/site-packages/flask_sqlalchemy/init.py", line 5, in
from .extension import SQLAlchemy
File "/opt/Mycodo/env/lib/python3.13/site-packages/flask_sqlalchemy/extension.py", line 9, in
import sqlalchemy as sa
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/init.py", line 13, in
from .engine import AdaptedConnection as AdaptedConnection
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/init.py", line 18, in
from . import events as events
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/events.py", line 19, in
from .base import Connection
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 30, in
from .interfaces import BindTyping
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/interfaces.py", line 38, in
from ..sql.compiler import Compiled as Compiled
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/init.py", line 14, in
from .compiler import COLLECT_CARTESIAN_PRODUCTS as COLLECT_CARTESIAN_PRODUCTS
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/compiler.py", line 61, in
from . import crud
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/crud.py", line 34, in
from . import dml
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/dml.py", line 34, in
from . import util as sql_util
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/util.py", line 46, in
from .ddl import sort_tables as sort_tables # noqa: F401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/ddl.py", line 30, in
from .elements import ClauseElement
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 810, in
class SQLCoreOperations(Generic[_T_co], ColumnOperators, TypingOnly):
...<472 lines>...
...
File "/usr/lib/python3.13/typing.py", line 1257, in _generic_init_subclass
super(Generic, cls).init_subclass(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 1988, in init_subclass
raise AssertionError(
...<2 lines>...
)
AssertionError: Class <class 'sqlalchemy.sql.elements.SQLCoreOperations'> directly inherits TypingOnly but has additional attributes {'firstlineno', 'static_attributes'}.
Path: /opt/Mycodo/mycodo/widgets/widget_controller_activate_deactivate.py, Type: widgets
Could not load module: Traceback (most recent call last):
File "/opt/Mycodo/mycodo/utils/modules.py", line 16, in load_module_from_file
spec.loader.exec_module(module_custom)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "", line 1026, in exec_module
File "", line 488, in _call_with_frames_removed
File "/opt/Mycodo/mycodo/widgets/widget_controller_activate_deactivate.py", line 30, in
from mycodo.databases.models import Conditional
File "/opt/Mycodo/mycodo/databases/init.py", line 7, in
from mycodo.mycodo_flask.extensions import db
File "/opt/Mycodo/mycodo/mycodo_flask/extensions.py", line 12, in
from flask_sqlalchemy import SQLAlchemy
File "/opt/Mycodo/env/lib/python3.13/site-packages/flask_sqlalchemy/init.py", line 5, in
from .extension import SQLAlchemy
File "/opt/Mycodo/env/lib/python3.13/site-packages/flask_sqlalchemy/extension.py", line 9, in
import sqlalchemy as sa
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/init.py", line 13, in
from .engine import AdaptedConnection as AdaptedConnection
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/init.py", line 18, in
from . import events as events
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/events.py", line 19, in
from .base import Connection
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 30, in
from .interfaces import BindTyping
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/interfaces.py", line 38, in
from ..sql.compiler import Compiled as Compiled
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/init.py", line 14, in
from .compiler import COLLECT_CARTESIAN_PRODUCTS as COLLECT_CARTESIAN_PRODUCTS
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/compiler.py", line 61, in
from . import crud
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/crud.py", line 34, in
from . import dml
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/dml.py", line 34, in
from . import util as sql_util
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/util.py", line 46, in
from .ddl import sort_tables as sort_tables # noqa: F401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/ddl.py", line 30, in
from .elements import ClauseElement
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 810, in
class SQLCoreOperations(Generic[_T_co], ColumnOperators, TypingOnly):
...<472 lines>...
...
File "/usr/lib/python3.13/typing.py", line 1257, in _generic_init_subclass
super(Generic, cls).init_subclass(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 1988, in init_subclass
raise AssertionError(
...<2 lines>...
)
AssertionError: Class <class 'sqlalchemy.sql.elements.SQLCoreOperations'> directly inherits TypingOnly but has additional attributes {'firstlineno', 'static_attributes'}.
Path: /opt/Mycodo/mycodo/widgets/widget_pid.py, Type: widgets
Could not load module: Traceback (most recent call last):
File "/opt/Mycodo/mycodo/utils/modules.py", line 16, in load_module_from_file
spec.loader.exec_module(module_custom)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "", line 1026, in exec_module
File "", line 488, in _call_with_frames_removed
File "/opt/Mycodo/mycodo/widgets/widget_pid.py", line 30, in
from mycodo.databases.models import Conversion
File "/opt/Mycodo/mycodo/databases/init.py", line 7, in
from mycodo.mycodo_flask.extensions import db
File "/opt/Mycodo/mycodo/mycodo_flask/extensions.py", line 12, in
from flask_sqlalchemy import SQLAlchemy
File "/opt/Mycodo/env/lib/python3.13/site-packages/flask_sqlalchemy/init.py", line 5, in
from .extension import SQLAlchemy
File "/opt/Mycodo/env/lib/python3.13/site-packages/flask_sqlalchemy/extension.py", line 9, in
import sqlalchemy as sa
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/init.py", line 13, in
from .engine import AdaptedConnection as AdaptedConnection
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/init.py", line 18, in
from . import events as events
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/events.py", line 19, in
from .base import Connection
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 30, in
from .interfaces import BindTyping
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/engine/interfaces.py", line 38, in
from ..sql.compiler import Compiled as Compiled
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/init.py", line 14, in
from .compiler import COLLECT_CARTESIAN_PRODUCTS as COLLECT_CARTESIAN_PRODUCTS
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/compiler.py", line 61, in
from . import crud
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/crud.py", line 34, in
from . import dml
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/dml.py", line 34, in
from . import util as sql_util
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/util.py", line 46, in
from .ddl import sort_tables as sort_tables # noqa: F401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/ddl.py", line 30, in
from .elements import ClauseElement
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 810, in
class SQLCoreOperations(Generic[_T_co], ColumnOperators, TypingOnly):
...<472 lines>...
...
File "/usr/lib/python3.13/typing.py", line 1257, in _generic_init_subclass
super(Generic, cls).init_subclass(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/opt/Mycodo/env/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 1988, in init_subclass
raise AssertionError(
...<2 lines>...
)
AssertionError: Class <class 'sqlalchemy.sql.elements.SQLCoreOperations'> directly inherits TypingOnly but has additional attributes {'firstlineno', 'static_attributes'}.`
Additional context
The setup.log file with several runs of the installation: setup.log
Here is my history (of the user 'root') what I did to fix some of the issues after the first setup run (with the 'normal' user) crashed:
1 cd /opt/Mycodo/ 2 ls -al 3 cd install/ 4 ls 5 ls -l 6 cp setup.log setup.log.firstRun 7 apt search libatlas-base-dev 8 apt search libatlas3-base 9 apt search libatlas 10 apt install libatlas3-base 11 apt install nginx 12 ls -l 13 ../env/bin/pip3 install -r requirements.txt 14 bash ./setup.sh 15 cp setup.log setup.log.SecondRun 16 apt install gawk 17 bash ./setup.sh 18 cp setup.log setup.log.ThirdRun 19 ls -al 20 wget --quiet --no-check-certificate -p http://localhost/ 21 echo $? 22 /opt/Mycodo/mycodo/scripts/upgrade_commands.sh generate-widget-html
*
I edited this post as I had some issues with the "*" things ;-)