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

已解决:Python ctypes加载dll模块提示找不到文件的问题

64位dll加载提示找不到模块但同路径32位dll可被识别的问题处理

问题现象

尝试使用如下代码加载目标dll文件:

os.add_dll_directory("C:\\path\\to\\file")
library = ctypes.windll.LoadLibrary("C:\\path\\to\\file\\tdcbase.dll")

程序返回如下错误信息:

FileNotFoundError: Could not find module 'C:\path\to\file\tdcbase.dll' (or one of its dependencies).
Try using the full path with constructor syntax.

测试覆盖的环境包括:

  • Windows 11 + Python 3.9.7
  • Windows 10 + Python 3.6/3.7/3.8/3.9.7
    所有环境下问题均复现,初步排查同目录下不存在需要额外添加搜索目录的依赖项。

同路径下存放有该dll对应的32位版本tdbase.dll,在64位环境下尝试加载该32位文件时,返回明确的位数不匹配错误:

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

该结果证明系统可以正常定位到同路径下的dll文件,排除路径配置错误的可能。

问题根因

错误提示里的(or one of its dependencies)是最容易被忽略的关键信息:抛出找不到模块的错误,不代表系统找不到你写在路径里的目标dll本身,也可能是加载目标dll的过程中,找不到它依赖的其他底层库。
多数人排查依赖时只会检查dll同目录下的文件,很容易漏掉硬件相关的驱动级依赖——这个场景下的tdcbase.dll是外接测量仪器的配套功能库,运行时依赖对应硬件的USB驱动底层文件,未安装驱动时系统找不到这部分依赖,就会统一抛出找不到目标模块的错误。

解决方案

安装对应外接仪器通信所需的官方USB驱动后,再次运行加载代码,dll即可正常加载,所有功能可正常运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:48:15