根本原因是dlib非纯python包,需编译c++代码;应避免pycharm gui安装,改用命令行+--only-binary=all强制安装预编译wheel,或conda install -c conda-forge dlib,并确保python abi标签、cmake及visual studio build tools正确配置。

PyCharm安装dlib卡在building wheel怎么办
根本原因是dlib不是纯Python包,它必须编译C++代码,而PyCharm默认调用的pip会尝试从源码构建——一旦缺CMake、编译器或系统头文件,就停在building 'dlib' extension这一步,报错里常带Microsoft Visual C++ 14.0 or greater is required或Could not find cmake executable。
别在PyCharm GUI里反复点“Install Package”按钮。它不暴露底层环境变量和PATH,也难控制是否走二进制安装。直接切到命令行操作更可靠:
- 先确认当前PyCharm项目用的是哪个Python解释器:
File → Settings → Project → Python Interpreter,看路径,比如C:\Users\name\anaconda3\envs\cv\python.exe - 用这个解释器对应的
pip(不是全局pip):打开终端,cd到该环境Scripts目录,或直接运行C:\Users\name\anaconda3\envs\cv\Scripts\pip.exe install --only-binary=all dlib - 加
--only-binary=all强制跳过编译,只找预编译wheel——这是Windows下最稳的路径
怎么选对dlib的whl文件
选错.whl文件是安装失败最隐蔽的原因。PyCharm解释器的ABI标签(比如cp39-cp39-win_amd64)必须和wheel文件名完全一致,差一个字符都报not a supported wheel on this platform。
别靠猜,用命令查准标签:
- 运行
python -m pip debug --verbose,看输出里tags字段第一行,例如cp39-cp39-win_amd64 - 去
https://pypi.org/simple/dlib/找名字匹配的whl,注意三点:Python版本(cp39)、ABI(cp39而非cp39m)、平台(win_amd64,不是win32) - 下载后别放桌面或下载目录——放在PyCharm项目根目录或Scripts同级目录下再装,避免路径空格或权限问题
为什么装了cmake还是报错
因为PyCharm里pip找到的cmake大概率是PyPI上的Python包cmake,它只是个wrapper,不是真正的CMake可执行程序。真正的CMake必须从https://cmake.org/download/下载Windows x64 Installer安装,并勾选「Add CMake to the system PATH」。
组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,适用于PR审查、增量代码审查、全项目评审和代码质量评分,触发词包括review cpp、cpp代码评审、C++review、代码审查。
验证是否装对:
- 命令行运行
cmake --version,有输出才是真CMake - 如果报“不是内部或外部命令”,说明PATH没生效,重启终端或PyCharm
- 即使装了CMake,Windows上还缺Visual Studio Build Tools——必须装完整版,且勾选「使用C++的桌面开发」工作负载,光装cmake不够
conda用户该不该用pip install dlib
不该。conda和pip混用容易破坏环境一致性,尤其dlib这种强依赖系统库的包。conda-forge渠道的dlib已预编译并绑定对应OpenCV、BLAS版本,兼容性远高于pip源。
正确做法:
- 在PyCharm里切换解释器为conda环境路径(如
C:\Users\name\anaconda3\envs\cv\python.exe) - 终端中用
conda activate cv激活,再运行conda install -c conda-forge dlib - 如果PyCharm仍提示未安装,点Settings里刷新包列表,或重启IDE——conda安装的包有时不会自动同步到GUI界面
真正麻烦的从来不是“装不上”,而是装上了但import时报DLL加载失败——那基本是ABI不匹配或VS运行时库缺失,比编译失败更难排查。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!










