You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.12中ctypes.util.find_library()因MSVC版本不兼容返回None导致whisper库崩溃的问题求助

Python 3.12中ctypes.util.find_library()因MSVC版本不兼容返回None导致whisper库崩溃的问题求助

我最近在做视频音频转写的项目,用到了whisper库,而这个库依赖ctypes。之前在配置好的Windows Server虚拟机上测试完全没问题,但换到我的实体Windows 10机器上就崩了。

仔细对比了两台机器的差异:实体机是从Python官网装的Python 3.12,虚拟机当时用conda装的Python(不过后来我删掉了虚拟机镜像,没法确认具体版本了)。

调试的时候发现问题出在ctypes.util里的find_library()方法——这个方法会检查Python编译时用的MSVC版本,然后返回对应的MSVC DLL路径。但Python 3.12是用MSVC 14.3编译的,而这个方法只支持MSVC版本<=13,所以直接返回了None。我试过强制指定其他版本,但程序又在别的地方崩溃了。

当find_library()返回None后,后续代码尝试把MSVC DLL库分配给对象时就炸了,报错信息如下:

C:/Python312/python.exe e:/Repositories/easy-subber/main.py
Traceback (most recent call last):
  File "e:\Repositories\easy-subber\main.py", line 7, in <module>
    from transcription import transcribe_audio
  File "e:\Repositories\easy-subber\transcription.py", line 1, in <module>
    import whisper
  File "C:\Python312\Lib\site-packages\whisper.py", line 69, in <module>  
    libc = ctypes.CDLL(libc_name)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python312\Lib\ctypes\__init__.py", line 369, in __init__       
    if '/' in name or '\\' in name:
       ^^^^^^^^^^^
TypeError: argument of type 'NoneType' is not iterable

我用的是Windows 10、Python 3.12,项目是easy-subber。另外我在最新版Ubuntu上测试过,运行完全正常,但我必须在Windows环境下运行这个程序。

有没有大佬遇到过这个问题并解决了?求指点!

备注:内容来源于stack exchange,提问作者Morvy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 09:49:37