Windows 11下使用nfcpy访问ACR122U时遇Errno 13权限拒绝问题
解决Windows 11下nfcpy访问ACR122U的权限拒绝问题
问题重现
运行以下代码时出现权限拒绝错误:
import nfc clf = nfc.ContactlessFrontend() assert clf.open('usb:002:010') is True
错误信息:
[Errno 13] Permission denied usb1.USBErrorAccess: LIBUSB_ERROR_ACCESS [-3]
执行python -m nfc时返回:
** found usb:072f:2200 at usb:002:010 but access is denied
解决方案
替换ACR122U的驱动为WinUSB
Windows默认给ACR122U安装的是CCID驱动,nfcpy依赖libusb兼容的驱动,需用Zadig工具替换:- 打开Zadig工具,勾选选项中的「List All Devices」
- 在设备列表中找到ACR122U(通常显示为「ACS ACR122U PICC Interface」)
- 选择驱动为「WinUSB」,点击「Replace Driver」完成替换
- 重新插拔ACR122U设备或重启电脑
确保用户对USB设备拥有完全控制权限
- 打开设备管理器,找到ACR122U设备,右键选择「属性」
- 切换到「安全」选项卡,检查当前用户(含管理员组)是否拥有「完全控制」权限
- 若权限缺失,点击「编辑」添加对应权限并保存
以管理员身份运行终端/命令行
直接打开管理员权限的命令提示符或PowerShell,再执行脚本或命令:python your_script.py或验证设备:
python -m nfc安装/更新libusb1依赖
确保已安装适配的libusb库:pip install --upgrade libusb1
内容的提问来源于stack exchange,提问作者ItsJustJoshhh
相关产品推荐
相关产品推荐

