调用vi2IPA时触发OSError: [WinError 193]错误求助
问题分析
错误OSError: [WinError 193] %1 is not a valid Win32 application本质是vinorm库的TTSnorm函数通过subprocess调用了无效可执行文件——要么文件损坏/缺失,要么是32位程序无法在64位Python环境运行,或是依赖的运行时未正确配置。
解决方案
检查vinorm依赖的外部程序
打开C:\Users\brije\AppData\Local\Programs\Python\Python310\lib\site-packages\vinorm目录,确认其中的外部执行文件(如.jar或exe)无损坏,且为64位版本(匹配你的Python位数)。若依赖Java,需安装64位Java Runtime Environment (JRE),并将Java路径加入系统PATH环境变量。替换vinorm的TTSnorm实现
若外部工具调用问题无法快速修复,可修改vinorm/__init__.py中的TTSnorm函数,用纯Python逻辑替代subprocess调用:def TTSnorm(text): text = text.strip() # 可根据需求添加越南语文本归一化规则,比如处理特殊字符、大小写等 return text注:此方法会跳过vinorm原生的专业归一化,但能直接解决当前报错。
重装兼容版本的库
先卸载现有库:pip uninstall viphoneme vinorm -y再安装更稳定的旧版本:
pip install viphoneme==0.3.0 vinorm==0.1.1部分旧版本已修复64位Windows下的subprocess调用问题。
确认Python环境位数
运行以下代码检查Python位数:import sys print(sys.maxsize > 2**32)若返回
False,说明是32位Python,建议卸载后安装64位Python 3.10,再重新安装相关库。
内容的提问来源于stack exchange,提问作者brijeshagal
相关产品推荐
相关产品推荐

