-1

Our Python 3.7 project is using sounddevice and it runs just fine, but we recently updated pyinstaller to 5.10.1 and the new version of pyinstaller doesn't like sounddevice.

BTW, updating pyinstaller to 5.11.0 doesn't help.

What do we need to do, to create an installable Python EXE that uses sounddevice?

EDIT: We are currently using sounddevice==0.4.1 and pyinstaller-hooks-contrib==2022.0

Here's what we get:

32015 INFO: Loading module hook 'hook-sounddevice.py' from 'C:\\Users\\employee\\Documents\\Project\\software\\venv\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
Traceback (most recent call last):
File "build.py", line 39, in <module>
  PyInstaller.__main__.run(['--noconfirm', '--distpath', distdir, '--workpath', builddir, fn_msi_spec])
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\__main__.py", line 180, in run
  run_build(pyi_config, spec_file, **vars(args))
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\__main__.py", line 61, in run_build
  PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\building\build_main.py", line 978, in main
  build(specfile, distpath, workpath, clean_build)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\building\build_main.py", line 900, in build
  exec(code, spec_namespace)
File "C:\Users\employee\Documents\Project\software\main.spec", line 35, in <module>
  noarchive=False)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\building\build_main.py", line 424, in __init__
  self.__postinit__()
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\building\datastruct.py", line 173, in __postinit__
  self.assemble()
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\building\build_main.py", line 576, in assemble
  priority_scripts.append(self.graph.add_script(script))
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\depend\analysis.py", line 269, in add_script
  self._top_script_node = super().add_script(pathname)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 1433, in add_script
  self._process_imports(n)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 2850, in _process_imports
  target_modules = self._safe_import_hook(*import_info, **kwargs)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\depend\analysis.py", line 433, in _safe_import_hook
  return super()._safe_import_hook(target_module_partname, source_module, target_attr_names, level, edge_attr)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 2303, in _safe_import_hook
  target_attr_names=None, level=level, edge_attr=edge_attr)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 1518, in import_hook
  submodule = self._safe_import_module(head, mname, submodule)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\depend\analysis.py", line 480, in _safe_import_module
  return super()._safe_import_module(module_basename, module_name, parent_package)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 2062, in _safe_import_module
  self._process_imports(n)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 2850, in _process_imports
  target_modules = self._safe_import_hook(*import_info, **kwargs)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\depend\analysis.py", line 433, in _safe_import_hook
  return super()._safe_import_hook(target_module_partname, source_module, target_attr_names, level, edge_attr)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 2303, in _safe_import_hook
  target_attr_names=None, level=level, edge_attr=edge_attr)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 1518, in import_hook
  submodule = self._safe_import_module(head, mname, submodule)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\depend\analysis.py", line 480, in _safe_import_module
  return super()._safe_import_module(module_basename, module_name, parent_package)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 2062, in _safe_import_module
  self._process_imports(n)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 2850, in _process_imports
  target_modules = self._safe_import_hook(*import_info, **kwargs)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\depend\analysis.py", line 433, in _safe_import_hook
  return super()._safe_import_hook(target_module_partname, source_module, target_attr_names, level, edge_attr)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 2303, in _safe_import_hook
  target_attr_names=None, level=level, edge_attr=edge_attr)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 1506, in import_hook
  source_package, target_module_partname, level)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 1685, in _find_head_package
  target_module_headname, target_package_name, source_package)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\depend\analysis.py", line 480, in _safe_import_module
  return super()._safe_import_module(module_basename, module_name, parent_package)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 2062, in _safe_import_module
  self._process_imports(n)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 2850, in _process_imports
  target_modules = self._safe_import_hook(*import_info, **kwargs)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\depend\analysis.py", line 369, in _safe_import_hook
  excluded_imports = self._find_all_excluded_imports(source_module.identifier)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\depend\analysis.py", line 357, in _find_all_excluded_imports
  excluded_imports.update(module_hook.excludedimports)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\depend\imphook.py", line 316, in __getattr__
  self._load_hook_module()
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\depend\imphook.py", line 383, in _load_hook_module
  self._hook_module = importlib_load_source(self.hook_module_name, self.hook_filename)
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\compat.py", line 612, in importlib_load_source
  return mod_loader.load_module()
File "<frozen importlib._bootstrap_external>", line 407, in _check_name_wrapper
File "<frozen importlib._bootstrap_external>", line 907, in load_module
File "<frozen importlib._bootstrap_external>", line 732, in load_module
File "<frozen importlib._bootstrap>", line 265, in _load_module_shim
File "<frozen importlib._bootstrap>", line 696, in _load
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks\hook-sounddevice.py", line 24, in <module>
sfp = get_package_paths("sounddevice")
File "C:\Users\employee\Documents\Project\software\venv\lib\site-packages\PyInstaller\utils\hooks\__init__.py", line 541, in get_package_paths
raise ValueError(f"Package '{package}' does not exist or is not a package!")
ValueError: Package 'sounddevice' does not exist or is not a package!
Betty Crokker
  • 3,001
  • 6
  • 34
  • 68

1 Answers1

0

Doh!

Updating to pyinstaller-hooks-contrib==2023.3 did the trick.

Betty Crokker
  • 3,001
  • 6
  • 34
  • 68