OSError: [WinError 193] %1不是一个有效的Win32应用程序(针对DLL库)

编程语言 2026-07-07

我在尝试运行这段代码,以连接到一台PicoScope示波器,然后再运行一个更大的程序:

import os
import platform
import ctypes

dll_dir = "C:\Program Files (x86)\Pico Technology\PicoScope6"
dll_name = "PS2000a.dll"

os.add_dll_directory(dll_dir)

dll_path = os.path.join(dll_dir, dll_name)

lib = ctypes.WinDLL(dll_path)
print("Loaded")

但我得到了这个错误:

%runfile '//katmandou/Share/530-Composants_Optiques_Multimédias/530.5-capteurs_optiques/530.5.2-caracterisation/Carac_QCLs_WaferLevel/programs/python_libraries/lco_laser_characterization/test_lib_import.py' --wdir
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
File \\katmandou\share\530-composants_optiques_multimédias\530.5-capteurs_optiques\530.5.2-caracterisation\carac_qcls_waferlevel\programs\python_libraries\lco_laser_characterization\test_lib_import.py:19
     15 os.add_dll_directory(dll_dir)
     17 dll_path = os.path.join(dll_dir, dll_name)
---> 19 lib = ctypes.WinDLL(dll_path)
     20 print("Loaded")

File ~\.conda\envs\qcl_env\Lib\ctypes\__init__.py:379, in CDLL.__init__(self, name, mode, handle, use_errno, use_last_error, winmode)
    376 self._FuncPtr = _FuncPtr
    378 if handle is None:
--> 379     self._handle = _dlopen(self._name, mode)
    380 else:
    381     self._handle = handle

OSError: [WinError 193] %1 is not a valid Win32 application

我在一台64位计算机上运行这段代码,PicoScope软件也是64位的。所以我不明白问题出在哪里。

我尝试在一个虚拟环境中运行这段代码。这个虚拟环境与另一台计算机上用于运行此段代码且没有任何问题的环境完全相同。但问题仍然存在。

我也只是简单地把运行那台电脑上的PS200a.dll文件拷贝到我的电脑上,但这并没有解决问题。

问题出在哪里?我应该怎么做来解决这个问题?

解决方案

WinError193 是架构不匹配,DLL似乎是32位的(因为它在 Program Files (x86)),而你在64位上运行。或者你把它保存在了错误的位置,请尝试把它移动到 C:\Program Files\

或者,更新你的设置以使用官方封装器 picosdk 来替代。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章