安装pyarrow时遇ModuleNotFoundError: No module named 'cmake'问题求助
解决pyarrow安装时"ModuleNotFoundError: No module named 'cmake'"问题
问题分析
错误日志显示,pip调用的是虚拟环境venv2/bin下的cmake脚本,但该脚本试图导入Python的cmake模块,而非你系统已安装的cmake程序。这说明虚拟环境中可能误装了Python版cmake包,或者PATH优先级导致系统cmake未被优先调用。
解决方案步骤
1. 移除虚拟环境中的Python版cmake
先检查虚拟环境内是否安装了Python的cmake包:
pip list | grep cmake
如果存在,直接卸载:
pip uninstall -y cmake
2. 确保系统cmake在PATH优先位置
macOS下系统cmake通常位于/usr/local/bin或/Applications/CMake.app/Contents/bin。先确认系统cmake的实际路径:
which cmake
将该路径添加到PATH最前端,避免优先调用虚拟环境内的脚本:
export PATH="/usr/local/bin:$PATH" # 替换为你的系统cmake实际路径
或者安装pyarrow时直接指定cmake路径:
CMAKE=/usr/local/bin/cmake pip install pyarrow
3. 安装适配老系统的预编译pyarrow轮子
macOS 10.12.6属于较旧版本,pyarrow新版本可能需要编译,建议安装适配的预编译轮子:
pip install pyarrow==14.0.1 --only-binary :all:
注:pyarrow 15及以上版本不再支持macOS 10.12,需选择14.x及以下版本。
4. 重置虚拟环境(上述方法无效时)
删除现有虚拟环境,重新创建后再安装依赖:
rm -rf venv2 python3.8 -m venv venv2 source venv2/bin/activate pip install --upgrade pip CMAKE=/usr/local/bin/cmake pip install pyarrow streamlit
内容的提问来源于stack exchange,提问作者Helen
相关产品推荐
相关产品推荐

