在Windows10+VS2017安装PyQt5依赖SIP时nmake报错求助
看起来你在Windows10搭配VS2017环境安装PyQt5依赖的SIP 4.19.9(Python 2.7)时,卡在了nmake步骤,核心错误就是'mt' is not recognized as an internal or external command。别担心,这个问题是因为环境变量没配置对,mt.exe是Windows SDK里的清单工具,咱们一步步来解决:
核心问题分析
你当前的命令行环境里,要么没加载VS2017的完整环境变量,要么错误调用了VS2015的配置脚本,导致系统找不到mt.exe的路径。
具体解决步骤
1. 改用VS2017的环境配置脚本
你之前执行的是VS2015的vcvarsall.bat,这和你用的VS2017不匹配。找到VS2017对应的脚本(以默认安装路径的社区版为例),执行:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
- 如果你装的是专业版/企业版,把路径里的
Community换成对应的版本名称; x86对应你Python的位数(你的Python是2.7 win32,所以选x86)。
2. 手动添加Windows SDK路径(可选,若步骤1无效)
如果执行完步骤1还是找不到mt.exe,可以手动把Windows SDK的bin目录加入环境变量。VS2017默认对应的Windows SDK路径一般是这样的(版本号可能不同,你可以在C:\Program Files (x86)\Windows Kits\10\bin下找最新的版本号目录):
set PATH=%PATH%;C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86
3. 重新执行nmake
在正确配置环境变量后,回到SIP的源码目录,重新执行:
nmake nmake install
额外小提示
你之前还调用了Qt5.10.0的msvc2015环境脚本,这可能会和VS2017的环境变量冲突。更简单的方式是直接打开VS2017的开发者命令提示符(在开始菜单的Visual Studio 2017文件夹里找「x86 Native Tools Command Prompt for VS 2017」),在这个干净的环境里直接执行SIP的configure.py和后续的nmake操作,不需要再手动调用其他环境脚本。
内容的提问来源于stack exchange,提问作者Suzanne

