M1芯片上Python3.6、旧版pandas与TensorFlow兼容问题求解
兼容M1 MacBook Pro运行Python 3.6旧代码的可行方案
方案1:通过Rosetta 2模拟x86环境安装原生依赖
这是最直接的适配方案,利用M1的Rosetta转译支持x86架构的Python和TensorFlow版本:
- 打开终端应用,右键选择「获取信息」,勾选「使用Rosetta打开」,重启终端
- 安装
pyenv管理Python版本:brew install pyenv echo 'eval "$(pyenv init --path)"' >> ~/.zshrc source ~/.zshrc - 安装Python 3.6.15(Python 3.6系列最后一个稳定版,完美兼容指定依赖):
pyenv install 3.6.15 - 在代码目录激活Python 3.6环境:
pyenv local 3.6.15 - 安装指定版本的依赖包:
pip install pandas==0.20.3 numpy==1.17.3 - 安装适配Python 3.6的TensorFlow版本:
# 若代码基于TensorFlow 1.x,安装最后兼容稳定版 pip install tensorflow==1.15.5 # 若代码基于TensorFlow 2.x,安装最高兼容版 pip install tensorflow==2.0.0 - 验证环境有效性:
python -c "import tensorflow as tf; import pandas as pd; import numpy as np; print(f'TF: {tf.__version__}, Pandas: {pd.__version__}, Numpy: {np.__version__}')"
方案2:使用Docker x86容器隔离环境
通过Docker的Rosetta转译支持运行x86镜像,完全隔离本地环境,避免版本冲突:
- 安装Docker Desktop,进入「设置」→「Features in development」,勾选「Use Rosetta for x86/amd64 emulation on Apple Silicon」,重启Docker
- 拉取Python 3.6的x86官方镜像:
docker pull python:3.6-slim - 运行容器并挂载本地代码目录(替换
/path/to/your/code为你的实际代码路径):docker run -it -v /path/to/your/code:/app python:3.6-slim bash - 在容器内安装所有依赖:
pip install pandas==0.20.3 numpy==1.17.3 tensorflow==1.15.5 - 切换到挂载的代码目录运行脚本:
cd /app python your_script.py
关键注意事项
- Rosetta转译会带来轻微性能损耗,但对于旧代码的运行需求完全足够,无需担心
- 所有安装操作必须在开启Rosetta的终端中执行,否则无法安装x86架构的Python 3.6包
- 若遇到pip安装失败,可尝试添加
--no-cache-dir参数,或指定国内PyPI镜像源加速安装
内容的提问来源于stack exchange,提问作者apt45
相关产品推荐
相关产品推荐

