OllisGit / OctoPrint-FilamentManager

OctoPrint plugin to manage your filament inventory
GNU Affero General Public License v3.0
52 stars 24 forks source link

Plugin doesn't install on Ubuntu 22 VM #116

Open daimon82 opened 1 year ago

daimon82 commented 1 year ago

Describe the bug The UI install ends with "Done! and Install Unknown /checkmark/" after octoprint restarts plugin is not installed and operation can be repeated. Install using pip using the PI user ends with:

Preparing metadata (setup.py) ... error error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully. │ exit code: 255 ╰─> [1 lines of output] Could not import OctoPrint's setuptools, are you sure you are running that under the same python installation that OctoPrint is installed under? [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed

× Encountered error while generating package metadata. ╰─> See above for output.

Steps to reproduce

  1. Install ubuntu 22.04.02 on a Virtual Machine (proxmox in my case)
  2. Click on plugin manager
  3. Install Filament Manager
  4. See error

Expected behavior Inatall Complete

Did the same happen when all other 3rd party plugins are disabled? Every other plugin installs successfully just like on RPI.

Log file octoprint.log

Screenshots If applicable, add screenshots to help explain your problem.

Additional context Add any other context about the problem here.

jattie-ire commented 1 year ago

I can confirm this, no plugin after install, like it just never installed, looks like it installs, but nothing appears after.

The octoprint log yields the following:

2023-05-16 18:01:11,916 - octoprint.plugin.core - DEBUG - Parsing plugin metadata from AST of /home/octo/OctoPrint/lib/python3.10/site-packages/octoprint_filamentmanager/init.py 2023-05-16 18:01:11,934 - octoprint.plugin.core - ERROR - Error loading plugin filamentmanager Traceback (most recent call last): File "/home/octo/OctoPrint/lib/python3.10/site-packages/octoprint/plugin/core.py", line 1274, in _import_plugin module = _load_module(module_name, spec) File "/home/octo/OctoPrint/lib/python3.10/site-packages/octoprint/plugin/core.py", line 52, in _load_module return imp.load_module(name, f, filename, details) File "/home/octo/OctoPrint/lib/python3.10/site-packages/octoprint/vendor/imp.py", line 238, in load_module return load_package(name, filename) File "/home/octo/OctoPrint/lib/python3.10/site-packages/octoprint/vendor/imp.py", line 212, in load_package return _load(spec) File "", line 719, in _load File "", line 688, in _load_unlocked File "", line 883, in exec_module File "", line 241, in _call_with_frames_removed File "/home/octo/OctoPrint/lib/python3.10/site-packages/octoprint_filamentmanager/init.py", line 17, in from .data import FilamentManager File "/home/octo/OctoPrint/lib/python3.10/site-packages/octoprint_filamentmanager/data/init.py", line 13, in from sqlalchemy.engine.url import URL File "/home/octo/OctoPrint/lib/python3.10/site-packages/sqlalchemy/init.py", line 9, in from .sql import ( File "/home/octo/OctoPrint/lib/python3.10/site-packages/sqlalchemy/sql/init.py", line 8, in from .expression import ( File "/home/octo/OctoPrint/lib/python3.10/site-packages/sqlalchemy/sql/expression.py", line 34, in from .functions import func, modifier, FunctionElement, Function File "/home/octo/OctoPrint/lib/python3.10/site-packages/sqlalchemy/sql/functions.py", line 11, in from . import sqltypes, schema File "/home/octo/OctoPrint/lib/python3.10/site-packages/sqlalchemy/sql/sqltypes.py", line 17, in from . import elements File "/home/octo/OctoPrint/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 16, in from . import type_api File "/home/octo/OctoPrint/lib/python3.10/site-packages/sqlalchemy/sql/type_api.py", line 16, in from .base import SchemaEventTarget File "/home/octo/OctoPrint/lib/python3.10/site-packages/sqlalchemy/sql/base.py", line 49, in class _DialectArgView(collections.MutableMapping): AttributeError: module 'collections' has no attribute 'MutableMapping'

jattie-ire commented 1 year ago

Downgrading to Python3.9 restores the Filament manager functionality to a working state on a Linux instance.

Created a clean base Linux install using Ubuntu 22.04 LTS followed by a Python3.9 venv per installation instructions here

jattie-ire commented 1 year ago

Hi Olli,

just to keep you in the loop, it looks like a SQLAlchemy version issue with the Linux distributions and if not explicitly installed in the octoprint venv. So by updating it seems to resolve the issue.

https://github.com/sqlalchemy/sqlalchemy/discussions/9831