gpt4 book ai didi

python - 确定用于 cdll.LoadLibrary 的库名称的系统级方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:34 27 4
gpt4 key购买 nike

根据文档,

On Linux, it is required to specify the filename including the extension to load a library, so attribute access can not be used to load libraries. Either the LoadLibrary() method of the dll loaders should be used, or you should load the library by creating an instance of CDLL by calling the constructor:

我使用的是一套外部开发的python脚本。它们需要一个相当的标准库(liblzma)并使用ctypes 中的LoadLibrary 来加载它——通过路径名.我的问题是这些脚本需要在多个不同的 linux 安装上运行,并且将来可能会更多。 liblzma 共享库的完整文件名及其位置因系统而异。我已经针对各种 lib 版本进行了测试,并发现没有冲突。

我真正需要的是一种确定已安装库的基本名称的方法,以便将适当的名称传递给LoadLibrary

我考虑过只使用 ldconfig -p 来打印现有库并解析输出以查找库名称。还有其他想法吗?

诚然,我有点不适应这里。有问题的脚本只是一个更大项目的必需部分。

最佳答案

只要库在加载程序搜索路径中,您就可以通过相对名称指定它。

$ ls /usr/lib64/libXt.*
/usr/lib64/libXt.so.6.0.0

>>> ctypes.CDLL('libXt.so.6.0.0')
<CDLL 'libXt.so.6.0.0', handle 26b72b0 at 2723c90>

关于python - 确定用于 cdll.LoadLibrary 的库名称的系统级方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11510515/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com