FunASR icon indicating copy to clipboard operation
FunASR copied to clipboard

使用pyinstaller打包程序后,运行报错 FileNotFoundError

Open DaNiuNai opened this issue 9 months ago • 2 comments

🐛 Bug

在使用pyinstaller打包程序后,运行报错 FileNotFoundError

Image

To Reproduce

# main.py
asr_model = AutoModel(
            model="paraformer-zh",
            vad_model="fsmn-vad",
            punc_model="ct-punc",
            disable_update=True,
            log_level="ERROR",
            disable_pbar=True,
            disable_log=True,
        )
asr_model.generate(input="音频路径")
pyinstaller -F main.py

运行main.exe 报错

PS D:\Work\PyTest> d:\Work\PyTest\dist\main.exe
Traceback (most recent call last):
  File "main.py", line 4, in <module>
    from funasr import AutoModel
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 450, in exec_module
  File "funasr\__init__.py", line 7, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\iFUTURE\\AppData\\Local\\Temp\\_MEI264642\\funasr\\version.txt'
[PYI-26760:ERROR] Failed to execute script 'main' due to unhandled exception!

Environment

  • OS (e.g., Linux): windows11
  • FunASR Version (e.g., 1.0.0): 1.2.6
  • PyTorch Version (e.g., 2.0.0): 2.6.0
  • How you installed funasr (pip, source): pip
  • Python version: 3.10.11
  • GPU (e.g., V100M32) : rtx4080
  • CUDA/cuDNN version (e.g., cuda11.7): 11.8

DaNiuNai avatar Apr 23 '25 05:04 DaNiuNai

🐛 Bug

在使用pyinstaller打包程序后,运行报错 FileNotFoundError

Image

To Reproduce

main.py

asr_model = AutoModel( model="paraformer-zh", vad_model="fsmn-vad", punc_model="ct-punc", disable_update=True, log_level="ERROR", disable_pbar=True, disable_log=True, ) asr_model.generate(input="音频路径") pyinstaller -F main.py 运行main.exe 报错

PS D:\Work\PyTest> d:\Work\PyTest\dist\main.exe Traceback (most recent call last): File "main.py", line 4, in from funasr import AutoModel File "", line 1027, in _find_and_load File "", line 1006, in _find_and_load_unlocked File "", line 688, in load_unlocked File "PyInstaller\loader\pyimod02_importers.py", line 450, in exec_module File "funasr_init.py", line 7, in FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\iFUTURE\AppData\Local\Temp\_MEI264642\funasr\version.txt' [PYI-26760:ERROR] Failed to execute script 'main' due to unhandled exception!

Environment

  • OS (e.g., Linux): windows11
  • FunASR Version (e.g., 1.0.0): 1.2.6
  • PyTorch Version (e.g., 2.0.0): 2.6.0
  • How you installed funasr (pip, source): pip
  • Python version: 3.10.11
  • GPU (e.g., V100M32) : rtx4080
  • CUDA/cuDNN version (e.g., cuda11.7): 11.8

pyinstaller 打包文件不完整导致的

lukeewin avatar Apr 24 '25 20:04 lukeewin

🐛 Bug

在使用pyinstaller打包程序后,运行报错 FileNotFoundError

Image

To Reproduce

main.py

asr_model = AutoModel( model="paraformer-zh", vad_model="fsmn-vad", punc_model="ct-punc", disable_update=True, log_level="ERROR", disable_pbar=True, disable_log=True, ) asr_model.generate(input="音频路径") pyinstaller -F main.py 运行main.exe 报错

PS D:\Work\PyTest> d:\Work\PyTest\dist\main.exe Traceback (most recent call last): File "main.py", line 4, in from funasr import AutoModel File "", line 1027, in _find_and_load File "", line 1006, in _find_and_load_unlocked File "", line 688, in load_unlocked File "PyInstaller\loader\pyimod02_importers.py", line 450, in exec_module File "funasr_init.py", line 7, in FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\iFUTURE\AppData\Local\Temp\_MEI264642\funasr\version.txt' [PYI-26760:ERROR] Failed to execute script 'main' due to unhandled exception!

Environment

  • OS (e.g., Linux): windows11
  • FunASR Version (e.g., 1.0.0): 1.2.6
  • PyTorch Version (e.g., 2.0.0): 2.6.0
  • How you installed funasr (pip, source): pip
  • Python version: 3.10.11
  • GPU (e.g., V100M32) : rtx4080
  • CUDA/cuDNN version (e.g., cuda11.7): 11.8

打包的文件不完整导致的,你直接找到funasr依赖包,手动把这个依赖包复制到你打包的目录里就行。这个问题我打包的时候也遇到过,我是这样解决的。

lukeewin avatar Apr 24 '25 20:04 lukeewin

请问手动复制funasr依赖包遇到过闪退问题吗?我是打包过程中无法识别那些register的包,一个一个补太费劲了,就打完把funasr依赖包复制过去了,但是运行就闪退,能否看下.spec的配置?

hhxdestiny avatar Jun 01 '25 08:06 hhxdestiny

我是直接通过命令来把包放进去的 pyinstaller --add-binary ".venv/lib/site-packages/funasr;funasr" --onefile main.py 添加--add-binary ".venv/lib/site-packages/<库文件夹>;<放到哪个位置>",可以添加多个add-binary

DaNiuNai avatar Jun 01 '25 09:06 DaNiuNai

spec文件我把Analysis的datas列表里填入('.venv/lib/site-packages/funasr', 'funasr'), ('.venv/lib/site-packages/示例', '示例')也可以进行打包

DaNiuNai avatar Jun 01 '25 09:06 DaNiuNai