torchaudio::is_sox_available关于使用pyinstaller 编译的问题

我在使用https://github.com/pyannote/pyannote-audio

是pyinstaller torch0.11.0 python==3.8

代码

我导入写如下库

import numpy as np
from pyannote.audio.pipelines import VoiceActivityDetection
from pyannote.audio import Model
import librosa,torch,time
运行结果及报错内容
  File "SpeechSplit.py", line 2, in <module>
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "pyannote\audio\__init__.py", line 29, in <module>
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "pyannote\audio\core\inference.py", line 33, in <module>
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "pyannote\audio\core\io.py", line 39, in <module>
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "torchaudio\__init__.py", line 2, in <module>
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "torchaudio\functional\__init__.py", line 25, in <module>
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "torchaudio\functional\functional.py", line 1146, in <module>
  File "torchaudio\_internal\module_utils.py", line 133, in requires_sox
  File "torchaudio\_internal\module_utils.py", line 129, in is_sox_available
  File "torch\_ops.py", line 167, in __getattr__
RuntimeError: No such operator torchaudio::is_sox_available
[13688] Failed to execute script 'SpeechSplit' due to unhandled exception!
我的解答思路和尝试过的方法

我没有更改过spec文件,尝试过用requirement重装torch -audio-vesion 无果

在pycharm运行的时候是好的 如何成功编译

现在已经找到问题所在 导入torchaudio后的编译错误

报错内容如上
测试代码如下


import torchaudio


print('pass')

环境 python 3.8.12 用pip从轮包安装的 torch三件套 版本对应应该没问题

对于我这个项目的问题的特定解决方法

安装pyannote zip包后使用 python3.9 torch 1.9 - cpu

出现错误的原因

安装pyannote zip包后根据依赖文件会自动安装torch 1.11
而torch1.11在对应的torchaudio在当前版本编译会出现问题,至少在我的设备上是这样 <--2022.3.26 的
虽然torchaudio和目前版本的pyannote会报一个版本不符合的错误,但是实际上可以运行
ps pyinstaller不能稳定的支持 python3.10,python3.8理论上应该也能编译 不过我没尝试

其他小问题’

若是在librosa方面的报错 如未找到一个txt或json请尝试

# yourProject.spec

venv=r'你的虚拟环境\Lib'

             datas=[(venv+r'\site-packages\librosa\util\example_data\index.json',
      './librosa/util/example_data'),
     (venv+r'\site-packages\librosa\util\example_data\registry.txt',
      './librosa/util/example_data')],
             hiddenimports=['sklearn.utils._typedefs','sklearn.neighbors._partition_nodes','pyannote.audio.models','pyannote.audio.models.segmentation',' importlib._bootstrap'],