我们的Python 3.7项目使用的是sounddevice,它运行得很好,但我们最近将pyinstaller更新为5.10.1,新版本的pyinstaller不喜欢sounddevice。
顺便说一句,将pyinstaller更新到5.11.0并没有帮助。
我们需要做什么,创建一个使用声音设备的可安装Python EXE?
编辑:我们目前使用的是sounddevice==0.4.1和pyinstaller hooks contrib==2022.0
以下是我们得到的:
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!