Python ctypes.cdll从内存而不是文件加载库

Python ctypes.cdll从内存而不是文件加载库,python,c++,ctypes,Python,C++,Ctypes,我将具有相同接口(.so文件)的小程序保存在数据库中,并使用ctypes.cdll加载使用它们的包装器 有没有办法从内存中加载它们?目前,我为此创建临时文件,然后将文件名传递给ctypes.cdll.LoadLibrary(),但我觉得这不是最佳解决方案。通常不会,因为cdll调用POSIXdlopen或WindowsLoadLibrary以正确加载共享库,即内存映射库及其相关库,执行运行时链接以解析符号,并调用模块构造函数/入口点。手动完成所有这些操作需要为每个平台构建自己的加载程序。@ery

我将具有相同接口(.so文件)的小程序保存在数据库中,并使用ctypes.cdll加载使用它们的包装器


有没有办法从内存中加载它们?目前,我为此创建临时文件,然后将文件名传递给ctypes.cdll.LoadLibrary(),但我觉得这不是最佳解决方案。

通常不会,因为
cdll
调用POSIX
dlopen
或Windows
LoadLibrary
以正确加载共享库,即内存映射库及其相关库,执行运行时链接以解析符号,并调用模块构造函数/入口点。手动完成所有这些操作需要为每个平台构建自己的加载程序。@eryksun谢谢。我觉得这是故意的。我会继续提问,以防有人提出我可以使用的解决方案Py2Exe有一个适用于Windows PE DLL的解决方案。这将是一项重大任务,但可以扩展到支持Linux ELF和OS X Mach-O库。