我正在使用一个程序,该程序使用库 Whisper,该程序使用
ctypes
库来转录一些视频音频。我在已经配置了windows server的虚拟机中进行了测试,效果很好。我的真机和虚拟机之间的区别在于,在我的真机中我通过其网站安装了Python,而在虚拟机中我使用conda安装了Python,但我认为Python已经安装在这个虚拟机中,而且我真的不知道哪个版本我正在使用。 我无法检查,因为几周前我删除了这个虚拟机映像。
当我调试代码时,在位于
find_library()
的方法ctypes.util
中,它检查Python编译时使用的MSVC编译器版本并返回MSVC DLL路径,Python 3.12是使用MSVC 14.3编译的,但是该方法仅支持 MSVC <= 13, then, if the version is greater, it will return a None value.
I've already tried to force other versions, but it crashes in another part.
When the None value is returned, the next method will allocate the MSVC DLL library to an object, but it doesn't work because my path is None value, and crash the program with the following message:
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 和这个程序:
https://github.com/ignabelitzky/easy-subber
我在Ubuntu上一个版本中进行了测试,它运行良好,但我需要运行的目标机器是Windows。
有人遇到过这个问题并解决了吗?
😅
我花了一段时间,但是:
[GitHub]:ignabelitzky/easy-subber - EasySubber 取决于 [GitHub]:openai/whisper - Whisper 其中指出(强调是我的):
pip install -U openai-whisper
相反,您有 [PyPI]:whisper(可能安装者:
pip install whisper
)。
安装正确的软件包,应该没问题。