本人的电脑没有遇到这个问题,而是某个同事遇到的这个问题。记录一下。

一个dll在python3.7下运行没问题,在另一台机子的python3.9下运行有问题,首先怀疑是python环境问题。但本人发现自己的python3.9也可以正常运行。

import sys 

print (sys.version)



import ctypes
import os
from ctypes import *

_path1 ="./A.dll"  #据说Python3.8以后要用这种调用方法

filter1 = ctypes.cdll.LoadLibrary(_path1)

_path2 ="A.dll"  #Python3.7及以前的方法

filter2 = ctypes.cdll.LoadLibrary(_path2)

print(filter1)
print(filter2)


#输出形如:
#3.9.12 (main, Apr  4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)]
#<CDLL 'G:\test\A.dll', handle 7ffe97030000 at 0x1ef826eddf0>
#<CDLL 'A.dll', handle 7ffe97030000 at 0x1ef83097820>

#从结果看这两种方法居然都可以。。

然后让他装了anaconda,用jupyter跑(保持和我的环境一致),仍然报错。

百般折腾下,决定查看下这个dll依赖了哪些库。用了visual studio的dumpbin工具(使用方法可以参考dumpbin的使用方法_dumpbin 的基础使用_花半楼的博客-CSDN博客

然后发现这个同事的电脑的System32目录下少了一个dll文件。把它下载后,问题得到了解决。

GitHub 加速计划 / de / Dependencies
8.61 K
704
下载
A rewrite of the old legacy software "depends.exe" in C# for Windows devs to troubleshoot dll load dependencies issues.
最近提交(Master分支:3 个月前 )
1997a400 - 2 年前
2f423539 - 2 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐