M1芯片Mac上安装TensorFlow与AIMA代码的问题求助
解决M1 Mac上AIMA代码安装与测试的依赖问题
我来帮你搞定这些问题,刚好之前在M1设备上折腾过类似的场景,给你一套针对性的解决方案:
1. 先搞定TensorFlow的版本冲突
你遇到的Could not find a version that satisfies the requirement tensorflow错误,本质是M1的ARM64架构和AIMA默认requirements.txt里的TensorFlow条目不兼容——默认配置可能是针对x86架构的,pip在ARM64的包索引里找不到匹配版本。但你已经在虚拟环境里成功装过并测试过TensorFlow了,完全没必要让pip再重复安装它。
解决步骤:
- 打开AIMA项目根目录的
requirements.txt文件 - 删除里面的
tensorflow(如果有tensorflow-gpu也一起删)这一行 - 保存文件后重新执行:
这样就不会再触发TensorFlow的安装错误了pip install -r requirements.txt
2. 逐一补全测试缺失的依赖
你测试时碰到的13个导入错误,都是缺对应的依赖包,直接针对性安装就行:
在激活的AIMA_ENV虚拟环境里执行这条命令,一次性装完所有报错提到的缺失包:
pip install ipythonblocks sortedcontainers qpsolvers networkx opencv-python
对应关系给你理清楚:
ipythonblocks→ 解决ModuleNotFoundError: No module named 'ipythonblocks'sortedcontainers→ 解决ModuleNotFoundError: No module named 'sortedcontainers'qpsolvers→ 解决ModuleNotFoundError: No module named 'qpsolvers'networkx→ 解决ModuleNotFoundError: No module named 'networkx'opencv-python→ 解决ModuleNotFoundError: No module named 'cv2'
3. 处理自定义requirements的潜在问题
你之前修改requirements.txt加了一堆包,可能出现M1架构下的安装冲突(比如cvxopt直接pip装容易失败)。如果上面的步骤执行后还有报错,可以试试:
- 先卸载冲突的包:
pip uninstall -y cvxopt(如果这个包安装失败的话) - 用Homebrew先装底层依赖,再装Python包,比如装
cvxopt:brew install gfortran pip install cvxopt - 要是你不需要某些模块的测试(比如深度学习相关),可以单独跳过对应测试文件,比如:
py.test --ignore=tests/test_deep_learning4e.py
4. 验证安装与测试
完成所有依赖安装后,重新跑测试:
py.test
如果还有个别测试报错,看具体错误信息针对性调整——比如某些测试需要特定版本的依赖,可以指定版本安装,比如pip install qpsolvers==3.2.0(这个是AIMA文档推荐的兼容版本)。
另外,确认下你的虚拟环境是ARM64版本的Python3.8,避免Rosetta转译的问题:
python -c "import platform; print(platform.machine())"
输出应该是arm64,如果是x86_64,那你得重新建基于ARM64 Python的虚拟环境。
内容的提问来源于stack exchange,提问作者Pegasus420
相关产品推荐
相关产品推荐

