Windows7新环境pip install报LNK1104:无法打开kernel32.lib(VS2017)
解决pip install Twisted时出现fatal error LNK1104: cannot open file 'kernel32.lib'的问题
我之前在全新Windows 7+Python环境下装Twisted时也踩过这个坑,这个错误本质是VC 2017 Build Tools找不到Windows SDK里的系统库文件,下面是亲测有效的解决办法:
方法一:补全Windows SDK组件
VC 2017 Build Tools默认可能没安装对应Windows版本的SDK,导致找不到kernel32.lib:
- 打开Visual Studio Installer(如果没装,直接重新运行VC2017 Build Tools的安装程序)
- 找到已安装的「Visual Studio Build Tools 2017」,点击「修改」
- 在「工作负载」标签下确保「C++ build tools」已勾选,然后切换到「单个组件」标签
- 找到并勾选Windows 7 SDK(或者与你的系统兼容的SDK版本,比如针对Win7的v7.1版本),以及对应的SDK工具集
- 点击「修改」完成安装,重启电脑后再尝试
pip install twisted
方法二:手动配置环境变量
如果SDK已经安装但路径没被识别,手动添加系统环境变量:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」区域:
- 新建或编辑
LIB变量,添加Windows SDK的lib路径(64位Python对应x64路径):
比如Windows 7 SDK的路径是C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64
若是Windows 10 SDK则是C:\Program Files (x86)\Windows Kits\10\Lib\10.0.xxxx.x\um\x64(xxxx为你的SDK版本号) - 新建或编辑
INCLUDE变量,添加SDK的include路径:
对应路径比如C:\Program Files\Microsoft SDKs\Windows\v7.1\Include或C:\Program Files (x86)\Windows Kits\10\Include\10.0.xxxx.x\um
- 新建或编辑
- 保存后重启命令行窗口,再执行安装命令
方法三:直接安装预编译wheel包(最省心)
不想折腾编译环境的话,直接用预编译的二进制包跳过编译步骤:
- 先安装wheel工具:
pip install wheel - 找到对应Python36+64位系统的Twisted wheel包(比如版本20.3.0的
Twisted-20.3.0-cp36-cp36m-win_amd64.whl) - 执行
pip install Twisted-xxx-win_amd64.whl(替换成你下载的文件名)即可完成安装
方法四:确保工具链位数匹配
因为你用的是64位Python,要确保VC工具链也用x64版本:
- 打开「Developer Command Prompt for VS 2017」
- 执行
vcvars64.bat激活x64编译环境 - 在这个窗口里运行
pip install twisted
内容的提问来源于stack exchange,提问作者Mine




