我试图让一个频谱分析仪程序的例子工作,但它有问题找到模块。这是我得到的错误
Traceback (most recent call last):
File "C:\Users\user\Documents\Programs\Python_program_example.py", line 10, in <module>
rsa300 = ctypes.WinDLL("C:\\Tektronix\\RSA306 API\\lib\\x64\\RSA300API.dll")
File "C:\Python27\lib\ctypes\__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found
DLL存在,并且os.path.exists()
使用该路径打印true
,因此我不确定问题出在哪里。有人知道这是怎么回事吗?在
RSA300API.DLL
可能在文件夹中有依赖项,因此在使用它之前,请使用os.chdir
来设置工作目录,例如:检查其中一个samples,这似乎是访问它的推荐方法。在
或者,正如@eryksub所提到的,可以使用
^{pr2}$LoadLibraryEx
。win32api
可用于获取句柄并将其传递给WinDLL
,如下所示:泰克应用工程师。在
Martin是对的,我们的dll在它所在的文件夹中有依赖关系。看起来您使用的是旧版本的API,它在C:\Tektronix\RSA306 API\lib\x64文件夹中有大量依赖项。新版本的API清除并合并了许多依赖关系,并重命名了许多函数,以提高清晰度和一致性。我们的软件工程师还决定在安装新版本时旧的API不会被覆盖,所以即使安装了最新的API,旧的脚本仍然可以工作。在
FWIW,我在所有RSA控制脚本的开头使用以下代码:
以下链接可下载RSA API的最新版本(截至2016年11月1日): http://www.tek.com/model/rsa306-software
下面是下载API文档的链接(截至2016年11月1日)。本文件附有Excel电子表格,其中概述了旧函数和新函数之间的区别: http://www.tek.com/spectrum-analyzer/rsa306-manual-6
相关问题 更多 >
编程相关推荐