【Python3】MacOS+Python3+libusb+pyusb配置+问题

MacOS+Python3+libusb+pyusb配置+问题

前言

因为公司实习做的项目要求和仪器设备连接USB通信并且控制,因为还要显示波形什么的,所以就觉得直接用Python比较好,所以就自然而然想起来用pyusb库来访问USB接口,而我的开发设备一直是我的中配MBP,感觉很多操作比WIN本要顺手许多,于是MacOS+Python+pyusb的搭配就出现了许多问题。

起初

第一步:在Python3上管理和连接USB设备,我们必须要用到pyusb库,我们打开终端,输入一下命令,安装pyusb库。

pip3 install pyusb --user

注意:这里建议大家直接用pip3自带的库,因为根据我后面的理解MacOS+Python3的环境下,开发USB最好还是跟进最新的库,而国内的镜像源的库版本可能多多少少有些滞后(我猜的,嘿嘿)。

第二步:安装完毕之后,我们新建一个.py文件,输入以下代码进行测试。

# -*- coding: utf-8 -*-

import usb.core

dev = usb.core.find(find_all=True)	#find all usb devices
for i in dev:
	print(i)	#print information of all usb devices

运行之后我们会惊奇地发现,系统会报这样的错误。

[Running] python3 "/Users/xxx/Desktop/AAA/SaleJuiceCode/BBB/test.py"
Traceback (most recent call last):
  File "/Users/lxz/Desktop/Arona/SaleJuiceCode/SeismoPython/test.py", line 19, in <module>
    dev =  usb.core.find(find_all=True)
  File "/usr/local/lib/python3.7/site-packages/usb/core.py", line 1297, in find
    raise NoBackendError('No backend available')
usb.core.NoBackendError: No backend available

[Done] exited with code=1 in 0.075 seconds

‘No backend available’直译过来就是“没有后端可用”,换句话说就是还缺一个底层连接支撑的文件。了解之后发现,还要安装一个libusb库(我在这里将一下我的理解,大家可以把libusb库理解为一个全平台的、连接pyusb库和硬件USB端口的库)。

第三步:在终端中,输入以下命令,安装libusb库。

pip3 install libusb  --user

安装完毕之后,我们再用刚才的代码进行测试,结果发现还是同样的报错。

崩溃

在查阅有关python+libusb的资料之后我发现大多数都是Windows和Linux的。于是怀着疑惑不解的心情,我就顺着报错的代码一步一步点进去看,顺着libusb安装的位置一个一个文件夹点进去看,路径如下。

/usr/local/lib/python3.7/site-packages

在该路径下,有一个名为“libusb”的文件夹,进去之后有一个名为“_platform”的文件夹,再进去之后会有三个主流系统平台的文件夹,如下图所示。
图1
每一个平台下面都会有两个文件夹:一个名为“x64”,一个名为”x86“。而文件夹中则有一个名为”libusb-1.0.dll“的dll文件,唯独Mac的”_osx“文件夹里没有类似的文件,而是空空如也,如下图所示。

Windows平台下:
图2
OSX平台下:
图3
真所谓空空如也。
想必Python报错,之所以没有支撑文件,就是因为这个文件夹里什么都没有!我直接裂开!!!

柳暗花明

正在我苦恼万分的时候,我看到了一篇文章:PyUSB-Dev-Env on Mac with libusb
这篇文章真的是救我于水生火热之中,我对作者表示100分的感激!(我看了这个作者写的博客,有不少也是解决如何在MacOS上开发MCU单片机)

第四步:根据这篇博客的介绍,我们应该使用Homebrew来安装libusb库(具体原因我后来查阅其他资料知晓了,后面再说)于是,我们在终端中输入以下命令。

brew install libusb-compat libusb

第五步:静静地等待安装完成之后,再使用之前写好的测试代码进行测试。功夫不负有心人,终于成功!!!

最终效果如下图所示。
图4
到这里就算是配置成功了!下面还有一些小技巧和原因讲解,不感兴趣的可以撤了。

其他

MacOS查看USB设备

第一步:点击电脑左上角的苹果标志“”
第二步:点击“关于本机”
第三步:点击“系统报告...”
第四步:找到“USB”,就可以查看了。
图5

MacOS无法通过pip安装libusb使用的原因

随着我查阅资料的增多,我就找到了libusb·PyPI的官方网站了:libusb Project description
通过阅读网站的一些版本更新文档,我们不难发现在libusb-1.0.22b6(2019-11-23)版本的时候才支持Linux,而且从一开始的文档到现在就没有提到MacOS所以估计通过pip3安装的libusb库和Homebrew安装libusb库是同一个库,只是更新维护的进度不太一样。
图6

最后

后续USB开发经验也会陆续分享到我的博客里。

作者

Markdown by SaleJuice
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值