pip安装pyportfolioopt失败:已装cmake仍提示找不到cmake模块
问题现象
执行pip3 install pyportfolioopt时触发构建错误:
...ERROR: Failed building wheel for osqp
Failed to build osqp
ERROR: Could not build wheels for osqp, which is required to install pyproject.toml-based projects
查看回溯信息发现核心问题:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.10/bin/cmake", line 5, in
from cmake import cmake
ModuleNotFoundError: No module named 'cmake'
已通过pip3 install cmake安装了Python的cmake模块(版本3.24.0),但问题依旧。环境为OSX 12.5 (Monterey) - M1芯片,Python 3.10.6。
注意:Python的cmake模块与系统级的cmake构建工具不是同一回事,osqp编译依赖的是后者。
解决方案
安装系统级cmake构建工具
使用Homebrew安装系统所需的cmake工具:brew install cmake确保系统cmake路径优先级
检查当前cmake命令的路径:which cmake正常输出应为
/opt/homebrew/bin/cmake(M1 Mac的Homebrew默认路径)。如果输出是Python目录下的cmake脚本,需要调整PATH环境变量,将Homebrew的bin目录放在最前面:echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc source ~/.zshrc重新执行安装命令
完成上述配置后,再次安装pyportfolioopt:pip3 install pyportfolioopt
内容的提问来源于stack exchange,提问作者Damian Satterthwaite-Phillips

