赞
踩
文章综合自下列参考链接
参考链接:
(1)《Pybluez Win10系统安装教程(蓝牙通信模块pybluez,Python完美安装)》by caigen001
(2)《Python 安装蓝牙模块 PyBluez 问题总结》 by Starkly
(3)《python安装pybluez各种报错的解决历程记录》by Forrest King
一、环境搭建
根据百度查找多个经验,分为两种方式,
(一)下载编译好的扩展包进行按装
Unofficial Windows Binaries for Python Extension Packages
见参考链接(1),这里不再详述。
(二)用pip安装
pip install pybluez
在Python3.9环境中会遇到
1、use_2to3 is invalid 错误
解决问题见参考链接(2)
pip install setuptools==57.5.0
2、LINK : fatal error LNK1181: 无法打开输入文件“Irprops.lib”
解决问题见参考链接(2)
进入
“C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64”
3、Could not find the Windows Platform SDK
请自行安装Windows SDK。这里安装了Windows SDK 10版本。
4、OSError @ bluetooth.find_service()
更改完上述问题后,执行
pip install pybluez
就可以显示成功安装pybluez 0.23 版本了。
但是运行示例程序:
import bluetooth nearby_devices = bluetooth.discover_devices(lookup_names=True) for addr, name in nearby_devices: print(" %s - %s" % (addr, name)) services = bluetooth.find_service(address=addr) for svc in services: print("Service Name: %s" % svc["name"]) print(" Host: %s" % svc["host"]) print(" Description: %s" % svc["description"]) print(" Provided By: %s" % svc["provider"]) print(" Protocol: %s" % svc["protocol"]) print(" channel/PSM: %s" % svc["port"]) print(" svc classes: %s "% svc["service-classes"]) print(" profiles: %s "% svc["profiles"]) print(" service id: %s "% svc["service-id"]) print("")
在运行至bluetooth.find_service()处时,会报错"OSError"
下图转自参考链接(3)
此时重新安装pybluz 0.22版本
pip install pybluez==0.22
安装时又会遇到 “Could not find the Windows Platform SDK ”问题。
这里查看pybluez的setup.py文件发现
def find_MS_SDK():
candidate_roots = (os.getenv('ProgramFiles'), os.getenv('ProgramW6432'),
os.getenv('ProgramFiles(x86)'))
if sys.version < '3.3':
MS_SDK = r'Microsoft SDKs\Windows\v6.0A' # Visual Studio 9
else:
MS_SDK = r'Microsoft SDKs\Windows\v7.0A' # Visual Studio 10
MS_SDK = r'Windows Kits\10' # Visual Studio 10
candidate_paths = (MS_SDK,
'Microsoft Platform SDK for Windows XP',
'Microsoft Platform SDK')
windows SDK v7.0A 显然版本过于低了,因此只能将按装好的win SDK10 拷贝至c:\program files(x86)\Microsoft SDKs\Windows\v7.0A中;
或者重新安装win SDK时修改目标目录为上述目录就可以了。
至此,pybluez示例代码能够正常运行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。