Skip to content

Installation from store fails with ModuleNotFoundError #5

@JakePi3

Description

@JakePi3

I've got logs at the end. I'm running Omarchy stable stream as the OS with Pipewire for the sound system and PulseAudio available as a compatibility layer.

┌──────────────────────Software────┐
 OS: Omarchy 3.4.1
│ ├󰘬: master
│ ├󰔫: stable
│ ├: Linux 6.18.13-arch1-1
│ ├: Hyprland 0.54.0 (Wayland)
│ ├: ghostty 1.2.3-arch3
│ ├󰏖: 1140 (pacman)
│ ├󰸌: Tokyo Night ●●●●●●●●
└ └: JetBrainsMono Nerd Font (11pt)
└──────────────────────────────────┘

❯ pactl --version
pactl 17.0-98-gb096
Compiled with libpulse 17.0.0
Linked with libpulse 17.0.0

❯ pipewire --version
pipewire
Compiled with libpipewire 1.4.10
Linked with libpipewire 1.4.10

When I install the plugin from the store, the installation "succeeds" but:

  • No plugin settings can be accessed for this particular plugin
  • No actions from the plugins can be added
  • The plugin doesn't even show up in the list of available actions
  • The plugin DOES show up as installed in the store
  • I get a stack trace in the logs every startup as below
  • Removing the plugin via the store does change its state in the store but it still attempts to load on startup

I've tried the following to fix:

  • Set SDL_AUDIODRIVER=pulseaudio,alsa before installation.
  • Tried installing a few sound libs via pacman but nothing worked so far

Since the plugin uses its own venv and I've looked inside to find pygame, my best guess is the module fails to load because its dependent on some library that's not available on my system but I can't identify what's missing.

Any help is appreciated.

Note that multiple plugin processes remain resident in memory (they seem to multiply until I exit the application). It looks like the module fails to load but there's no cleanup and the socket is never released.

# ps -ef
test      15875   15233  0 09:41 pts/0    00:00:00 python3 /home/test/.var/app/com.core447.StreamController/data/plugins/com_buggex_soundboard/backend/backend.py --port=34913
test      15887   15233  0 09:41 pts/0    00:00:00 python3 /home/test/.var/app/com.core447.StreamController/data/plugins/com_buggex_soundboard/backend/backend.py --port=39281
2026-03-04 09:41:32.101 | INFO     | src.backend.PluginManager.PluginBase:launch_backend:636 - Launching backend: . /home/test/.var/app/com.core447.StreamController/data/plugins/com_buggex_soundboard/backend/.venv/bin/activate && python3 /home/test/.var/app/com.core447.StreamController/data/plugins/com_buggex_soundboard/backend/backend.py --port=39281
<frozen importlib._bootstrap>:491: RuntimeWarning: Your system is avx2 capable but pygame was not built with support for it. The performance of some of your blits could be adversely affected. Consider enabling compile time detection with environment variables like PYGAME_DETECT_AVX2=1 if you are compiling without cross compilation.
pygame 2.6.1 (SDL 2.32.64, Python 3.14.3)
Hello from the pygame community. https://www.pygame.org/contribute.html
2026-03-04 09:41:32.177 | SUCCESS  | streamcontroller_plugin_tools.BackendBase:start_server:33 - Started server
/home/test/.var/app/com.core447.StreamController/data/plugins/com_buggex_soundboard/backend/backend.py:57: RuntimeWarning: use mixer: No module named 'pygame.mixer'
(ModuleNotFoundError: No module named 'pygame.mixer')
  if not pygame.mixer.get_init():
2026-03-04 09:41:32.203 | ERROR    | src.backend.PluginManager.PluginManager:init_plugins:71 - Error initializing plugin <class 'plugins.com_buggex_soundboard.main.Soundboard'>: mixer module not available (ModuleNotFoundError: No module named 'pygame.mixer')

========= Remote Traceback (1) =========
Traceback (most recent call last):
  File "/home/test/.var/app/com.core447.StreamController/data/plugins/com_buggex_soundboard/backend/.venv/lib/python3.14/site-packages/rpyc/core/protocol.py", line 369, in _dispatch_request
    res = self._HANDLERS[handler](self, *args)
  File "/home/test/.var/app/com.core447.StreamController/data/plugins/com_buggex_soundboard/backend/.venv/lib/python3.14/site-packages/rpyc/core/protocol.py", line 863, in _handle_call
    return obj(*args, **dict(kwargs))
  File "/home/test/.var/app/com.core447.StreamController/data/plugins/com_buggex_soundboard/backend/backend.py", line 57, in get_audio_devices
    if not pygame.mixer.get_init():
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/test/.var/app/com.core447.StreamController/data/plugins/com_buggex_soundboard/backend/.venv/lib/python3.14/site-packages/pygame/__init__.py", line 70, in __getattr__
    raise NotImplementedError(missing_msg)
NotImplementedError: mixer module not available (ModuleNotFoundError: No module named 'pygame.mixer')
. Skipping...
2026-03-04 09:41:32.206 | INFO     | src.backend.DeckManagement.DeckController:load_page:704 - Loading page Soundboard on deck WA24262I58A
2026-03-04 09:41:32.273 | ERROR    | src.backend.DeckManagement.DeckController:update_ui_on_page_change:667 - 'PageSettingsPage' object has no attribute 'settings_page' -> This is okay if you just activated your first deck.
2026-03-04 09:41:32.276 | INFO     | src.backend.DeckManagement.DeckController:load_brightness:605 - 50
2026-03-04 09:41:32.280 | INFO     | src.backend.DeckManagement.DeckController:load_background:577 - Loading background in thread: 140701182457536
2026-03-04 09:41:32.309 | INFO     | src.backend.DeckManagement.DeckController:load_screensaver:615 - Loading screensaver in thread: 140699353736896
2026-03-04 09:41:32.313 | INFO     | src.backend.DeckManagement.DeckController:load_page:735 - Loaded page Soundboard on deck WA42412I58A
2026-03-04 09:41:32.335 | SUCCESS  | src.backend.Store.StoreBackend:install_plugin:898 - Plugin com_buggex_soundboard installed successfully under: /home/test/.var/app/com.core447.StreamController/data/plugins/com_buggex_soundboard with sha: a62d8164e4052cc08e2569734f5b1943b60356d5

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions