1

当我在 32 位 python 中运行时,

import pyvisa
rm = pyvisa.ResourceManager()

我收到此错误:

回溯(最后一次调用):文件“”,第 1 行,在文件“C:\Users\latshaw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyvisa\highlevel.py”中,第 3015 行,在的 visa_library = open_visa_library(visa_library) 文件“C:\Users\latshaw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyvisa\highlevel.py”中,第 2929 行,在 open_visa_library返回 cls(参数)文件 "C:\Users\latshaw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyvisa\highlevel.py",第 175 行,在的 raise OSError("Could not打开 VISA 库:\n" + "\n".join(errs)) OSError: 无法打开 VISA 库:未找到函数 'viOpen'

到目前为止,这是我尝试过的:用 pip 重新安装

$ pip install -U pyvisa

以下是一些安装信息:

python -m 签证信息

C:\Users\latshaw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\visa.py:13: FutureWarning: PyVISA 提供的签证模块正在被弃用。您可以替换import visaimport pyvisa as visa以达到相同的效果。弃用的原因是可能与https://github.com/visa-sdk/visa-python提供的签证包冲突,这可能导致难以调试的情况。警告.warn

机器详细信息:平台 ID:Windows-10-10.0.18362-SP0 处理器:Intel64 Family 6 Model 158 Stepping 13,GenuineIntel

Python:实现:CPython 可执行文件:C:\Users\latshaw\AppData\Local\Programs\Python\Python38-32\python.exe 版本:3.8.5 编译器:MSC v.1926 32 位(英特尔) 位:32 位构建: 2020 年 7 月 20 日 15:43:08 (#tags/v3.8.5:580fbb0) Unicode: UCS4

PyVISA 版本:1.11.3

后端:ivi:版本:1.11.3(与 PyVISA 捆绑)#1:C:\windows\system32\visa32.dll:发现者:自动位数:32 无法获取更多信息:未找到函数“viOpen”

我不确定这里出了什么问题。根据我的研究,人们犯错误的最大两种方式似乎是不匹配 32 版本的 pyvisa 和 64 位版本的 IDLE(我的都是 32 位),另一个是命名文件 visa.py (我没有这样做)。

非常感谢任何帮助,干杯!

4

1 回答 1

1

经过一番挖掘,我发现这是 python 3.8 的问题,因为它没有正确加载 DLL 文件(关于环境 PATH)。在我的具体情况下,我有兴趣加载是德签证,所以以下内容对我有用。

import os
os.add_dll_directory('C:\\Program Files (x86)\\Keysight\\IO Libraries Suite\\bin')
import pyvisa
rm = pyvisa.ResourceManager('ktvisa32')

现在 rm 返回:

rm <enter>
<ResourceManager(<IVIVisaLibrary('ktvisa32')>)>

我认为这是解决我的问题的方法。但是,我现在正在“离线”运行,无法访问 key-sight 测试设备以查看是否可以通过 python 脚本与他们交谈。我的手指交叉了:)

谢谢阅读 :)

于 2021-01-20T15:17:07.550 回答