代码之家  ›  专栏  ›  技术社区  ›  Betty Crokker

pyinstaller不喜欢音响设备

  •  0
  • Betty Crokker  · 技术社区  · 3 年前

    我们的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!
    
    1 回复  |  直到 3 年前
        1
  •  0
  •   Betty Crokker    3 年前

    Doh!

    更新到pyinstaller hooks contrib==2023.3做到了这一点。

    推荐文章