Mac Ventura 13.5.2下Conda环境eSpeak运行失败问题求助
在Mac Ventura 13.5.2的Python3.9 Conda环境中运行eSpeak的架构不兼容问题
问题背景
使用Mac Ventura 13.5.2系统,尝试在独立于base的Python3.9 Conda环境中运行eSpeak,已通过Homebrew完成eSpeak安装。虽确认dylib文件存在(路径:/opt/homebrew/Cellar/espeak/1.48.04_1/lib/libespeak.1.1.48.dylib),但phonemizer的backend.py始终无法识别该库,持续抛出RuntimeError。
已尝试的操作
- 执行
sudo nano /etc/paths并添加dylib路径/opt/homebrew/Cellar/espeak/1.48.04_1/lib/libespeak.1.1.48.dylib - 导出环境变量
PHONEMIZER_ESPEAK_LIBRARY并设置为上述dylib路径 - 添加路径
/opt/homebrew/bin/espeak及Conda环境中phonemizer所在路径anaconda3/envs/py39/lib/python3.9/site-packages/phonemizer - 尝试安装
python-espeak,执行pip install python-espeak时构建失败,报错:
note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for python-espeak Running setup.py clean for python-espeak Failed to build python-espeak ERROR: Could not build wheels for python-espeak, which is required to install pyproject.toml-based projects
最新错误提示
测试时出现架构不兼容错误:
RuntimeError: failed to load espeak library: dlopen(/opt/homebrew/Cellar/espeak/1.48.04_1/lib/libespeak.1.1.48.dylib, 0x0006): tried: '/opt/homebrew/Cellar/espeak/1.48.04_1/lib/libespeak.1.1.48.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/espeak/1.48.04_1/lib/libespeak.1.1.48.dylib' (no such file), '/opt/homebrew/Cellar/espeak/1.48.04_1/lib/libespeak.1.1.48.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))
解决方案建议
1. 匹配Conda环境与eSpeak的架构
错误核心是Conda环境为x86_64架构,但Homebrew安装的eSpeak是arm64架构(M系列Mac默认arm64),需让两者架构一致:
方案A:安装x86_64版本的eSpeak
- 打开Rosetta2终端:执行
arch -x86_64 zsh - 安装x86_64版本的eSpeak:
arch -x86_64 brew install espeak(若未配置x86版Homebrew,此命令会自动在x86环境下安装) - 找到x86版eSpeak的dylib路径(通常在
/usr/local/Cellar/espeak/[版本号]/lib/下) - 导出环境变量指向该路径:
export PHONEMIZER_ESPEAK_LIBRARY=/usr/local/Cellar/espeak/1.48.04_1/lib/libespeak.1.1.48.dylib - 若需永久生效,可将该export命令添加到Conda环境的激活脚本中(路径:
anaconda3/envs/py39/etc/conda/activate.d/env_vars.sh)
方案B:创建arm64架构的Conda环境
- 检查当前Conda环境架构:执行
conda info,查看platform字段 - 若当前环境是x86_64,重新创建arm64架构的Python3.9环境:
conda create -n py39_arm python=3.9 conda activate py39_arm - 安装phonemizer:
pip install phonemizer - 此时直接使用已通过Homebrew安装的arm64版eSpeak即可,无需额外配置路径(确保
/opt/homebrew/bin在系统PATH中)
2. 放弃python-espeak依赖
python-espeak是过时的绑定库,phonemizer本身已原生支持eSpeak,无需安装该包,专注解决架构匹配问题即可。
内容的提问来源于stack exchange,提问作者fluxrep
相关产品推荐
相关产品推荐

