win10 下 ctypes 加载报错问题

2020-03-16 19:44:40 +08:00
 wersonliu9527

如图 不是有效的 win 32 但是我的 python 解释器 是32位的

2586 次点击
所在节点    Python
9 条回复
ysc3839
2020-03-16 20:22:31 +08:00
加载的是什么 DLL ?
12101111
2020-03-16 20:43:17 +08:00
你加载了 64 位或者 Linux 的东西
wersonliu9527
2020-03-16 21:47:54 +08:00
rwalle
2020-03-16 22:16:21 +08:00
@wersonliu9527 那的确不是有效的 win32 啊。。。你要加载 windows 下编译的 dll
wersonliu9527
2020-03-17 09:23:03 +08:00
@rwalle ctypes.cdll.LoadLibrary('xxx.so') 这种操作不允许么
bitdust
2020-03-17 10:29:41 +08:00
@wersonliu9527 我估计是没人回你了。我回你吧。
ctypes 加载二进制库的一个先决条件是:这个二进制库可以在这个系统上正常运行。
比如你的“*.so”文件,明显是个 linux 下的动态库,这个在 windows 上根本就跑不起来,所以你不可能调用成果~
wersonliu9527
2020-03-17 10:51:03 +08:00
@bitdust 好的,谢谢
roundgis
2020-03-17 14:49:15 +08:00
@wersonliu9527 .so 这种受限于 os 是无法兼容的
banxi1988
2020-03-18 14:02:28 +08:00
我来补充一下, 就算是在 linux 下直接加载 .so 库很多情况下也是不一定能成功了.
除非他们跟你使用 Python 是 ABI 兼容的. 简单来说,如果对应库是 C++ 编译的,又没有提供 C 链接的兼容性(或者做了,但是做得不彻底) 也是无法加载成功的.

总之,链接,动态加载与库, 真是个大问题.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/653365

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX