0x00 背景

准备在Win10使用python做蓝牙功能开发,安装了最新的Python 3.10.04,然后在Pycharm中新建工程,指定venv环境为Python 3.10.04。在使用pip安装pybluez包的时候,报了若干个Error,就写篇Blog记录一下,给大家做参考。

0x01 报错及解决过程

第一个报错为:error in pybluez2 setup command: use_2to3 is invalid.
原因:高版本的setuptools中不再使用use_2to3 解决方法:File > Settings > Project:xxxx > Python Interpreter 的Package中setuptools 版本降到58以下即可

第二个报错为:LINK : fatal error LNK1181: cannot open input file 'Irprops.lib' 原因:Windows Kit中删除了irprops.lib,链接到 irprops.lib 的应用可直接改为链接到 bthprops.lib 解决方法: 根据编译命令,找到Windows Kit的位置:

 C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /
DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:E:\mcp\WorkPal\venv\libs /LIBPATH:D:\Program Files\Python\Python_310\libs /LIBPATH:D:\Program Fil
es\Python\Python_310 /LIBPATH:E:\mcp\WorkPal\venv\PCbuild\amd64 /LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MS
VC\14.16.27023\lib\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\1
0.0.22000.0\ucrt\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22000.0\um\x64 WS2_32.lib Irprops.lib /EXPORT:PyInit__msbt build\temp
.win-amd64-3.10\Release\msbt\_msbt.obj /OUT:build\lib.win-amd64-3.10\bluetooth\_msbt.cp310-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.10\Release\
msbt\_msbt.cp310-win_amd64.lib
  LINK : fatal error LNK1181: cannot open input file 'Irprops.lib'

根据命令,我的lib目录为C:\Program Files (x86)\Windows Kits\10\lib\10.0.22000.0\um\x64
用管理员身份打开CMD,cd到该目录,然后使用mklink IRPROPS.LIB bthprops.lib创建符号链接
然后重新pip install pybluez即可