You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10下PyVISA无法识别NI-VISA已检测的USB仪器求助

问题概述

作为PyVISA新手,尝试实现实验室设备自动化时遇到核心问题:NI-VISA向导可正常识别Thorlabs功率计,但运行以下代码时,list_resources()返回空元组:

import pyvisa
rm = pyvisa.ResourceManager()
rm.list_resources()

已排查位数匹配(64位Python搭配visa64.dll,通过.pyvisarc和代码指定路径)、pyvisa-py后端的PyUSB安装问题,但均未解决。附pyvisa-info关键信息:64位Python 3.12.3、PyVISA 1.14.1,ivi后端可识别NI的visa64/32.dll,py后端USB模块提示PyUSB未正确安装。

解决方案步骤

1. 强制指定NI-VISA后端路径

PyVISA可能默认选择后端时出现偏差,直接在代码中指定64位NI-VISA库路径,避免自动选择错误:

import pyvisa
# 明确指向NI的64位VISA DLL
rm = pyvisa.ResourceManager('C:\\Windows\\System32\\visa64.dll')
print(rm.list_resources())

同时检查用户目录下的.pyvisarc配置文件,确保内容为:

paths:
  visa: C:\Windows\System32\visa64.dll

(Windows路径需用双反斜杠转义,或使用原始字符串格式)

2. 验证NI-VISA设备可用性

先排除NI-VISA本身的问题:

  • 打开NI MAX(Measurement & Automation Explorer),在「Devices and Interfaces」的USB分类下找到目标功率计,右键查看「Properties」,记录设备的VISA资源名称(格式类似USB0::0x1313::0x8078::xxxxxx::INSTR)
  • 打开设备的「VISA Test Panel」,发送*IDN?命令,确认设备能正常返回标识信息,确保硬件连接和NI-VISA配置无问题

3. 修复PyUSB后端(若需使用pyvisa-py)

如果需要备用的pyvisa-py后端,解决PyUSB安装问题:

  • 卸载现有PyUSB:
pip uninstall pyusb -y
  • 重新安装PyUSB:
pip install pyusb
  • 安装libusb-win32驱动:使用zadig工具为Thorlabs设备安装libusb-win32驱动(注意:仅当需要切换到pyvisa-py后端时操作,不要覆盖NI-VISA的原生驱动)
  • 测试pyvisa-py后端:
import pyvisa
rm = pyvisa.ResourceManager('@py')
print(rm.list_resources())

4. 确认Python与NI-VISA位数完全匹配

  • 打开NI MAX,通过「帮助」→「关于NI MAX」查看NI-VISA的位数(需为64位,与Python位数一致)
  • 若NI-VISA仅安装了32位版本,需重新安装64位版本的NI-VISA

5. 重启相关服务与进程

  • 打开Windows服务管理器(运行services.msc),找到「NI-VISA Server」,右键选择「重启」
  • 关闭并重新打开Python IDE/终端,确保配置变更生效
额外排查点
  • 关闭Thorlabs自带的设备控制软件,避免设备被占用
  • 更新PyVISA到最新版本,修复可能的版本兼容问题:
pip install --upgrade pyvisa

内容的提问来源于stack exchange,提问作者andy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 12:02:16