如图 不是有效的 win 32 但是我的 python 解释器 是32位的
1
ysc3839 2020-03-16 20:22:31 +08:00 via Android
加载的是什么 DLL ?
|
2
12101111 2020-03-16 20:43:17 +08:00
你加载了 64 位或者 Linux 的东西
|
3
wersonliu9527 OP @12101111 我加载的是一个.so 文件
|
4
rwalle 2020-03-16 22:16:21 +08:00 via Android
@wersonliu9527 那的确不是有效的 win32 啊。。。你要加载 windows 下编译的 dll
|
5
wersonliu9527 OP |
6
bitdust 2020-03-17 10:29:41 +08:00
@wersonliu9527 我估计是没人回你了。我回你吧。
ctypes 加载二进制库的一个先决条件是:这个二进制库可以在这个系统上正常运行。 比如你的“*.so”文件,明显是个 linux 下的动态库,这个在 windows 上根本就跑不起来,所以你不可能调用成果~ |
7
wersonliu9527 OP @bitdust 好的,谢谢
|
8
roundgis 2020-03-17 14:49:15 +08:00
@wersonliu9527 .so 这种受限于 os 是无法兼容的
|
9
banxi1988 2020-03-18 14:02:28 +08:00
我来补充一下, 就算是在 linux 下直接加载 .so 库很多情况下也是不一定能成功了.
除非他们跟你使用 Python 是 ABI 兼容的. 简单来说,如果对应库是 C++ 编译的,又没有提供 C 链接的兼容性(或者做了,但是做得不彻底) 也是无法加载成功的. 总之,链接,动态加载与库, 真是个大问题. |