Mac M1环境下TensorFlow 1.12与Magenta 4.0架构不兼容报错求助
解决Mac M1上TensorFlow 1.12 + Magenta架构不兼容问题
问题背景
Mac M1终端环境,已安装Python 3.10、TensorFlow 1.12、Magenta 4.0,尝试过开启/关闭Rosetta,执行以下命令时触发架构不兼容错误:
melody_rnn_generate \ --config=basic_rnn \ --bundle_file=basic_rnn.mag \ --output_dir=/tmp/melody_rnn/generated \ --num_outputs=10 \ --num_steps=128 \ --primer_melody="[60]"
错误核心信息:
ImportError: dlopen(...) mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')
错误原因
- TensorFlow 1.12仅提供x86_64架构的二进制包,无arm64版本,无法直接在M1原生环境运行
- Python 3.10版本过高,TensorFlow 1.12仅支持Python 3.5-3.7,版本不兼容
- Magenta 4.0依赖TensorFlow 2.x,与TF 1.12存在API冲突
解决方案步骤
1. 创建Rosetta下的x86 Python虚拟环境
- 右键终端→「显示简介」→勾选「使用Rosetta打开」,重启终端
- 用pyenv创建Python 3.7环境(TF1.12支持的最高稳定版本):
或用conda创建:pyenv install 3.7.16 pyenv local 3.7.16conda create -n magenta_env python=3.7 conda activate magenta_env
2. 安装兼容版本的依赖
- 安装TensorFlow 1.12:
pip install tensorflow==1.12.0 - 安装适配TF1.x的Magenta版本(1.3.1为稳定兼容版本):
pip install magenta==1.3.1
3. 重新执行生成命令
激活虚拟环境后,再次运行原melody_rnn_generate命令即可正常执行。
注意事项
- 全程使用Rosetta终端,避免arm与x86环境混用
- 不要尝试在原生arm环境下运行TF1.x,官方无支持
- 严格匹配Python、TensorFlow、Magenta的版本组合,避免跨版本冲突
内容的提问来源于stack exchange,提问作者sickobb
相关产品推荐
相关产品推荐

