是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 无果
现在已经找到问题所在 导入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'],