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!