如何检测 python ctypes 加载的共享对象
How to detect shared objects loaded by python ctypes
我需要将共享对象复制到包中以便分发。到目前为止,ldd 就足够了。
我现在遇到了 https://github.com/emcconville/wand/blob/master/wand/api.py,它使用 ldd 检测不到的 ctypes。
如何检测加载了哪些共享对象以便复制它们?
一般情况下没有办法做到这一点。考虑一个执行 ctypes.util.find_library(sys.argv[1])
的程序。您不可能提前知道它将尝试加载哪些库。
在您的特定情况下,您应该能够通过包装 ctypes
来记录它在执行期间加载的所有库来解决这个问题。但是请注意,这仅在您的执行加载了它在任何执行中都需要的所有库时才有效,因此请确保您点击了所有相关的代码路径。
我需要将共享对象复制到包中以便分发。到目前为止,ldd 就足够了。
我现在遇到了 https://github.com/emcconville/wand/blob/master/wand/api.py,它使用 ldd 检测不到的 ctypes。
如何检测加载了哪些共享对象以便复制它们?
一般情况下没有办法做到这一点。考虑一个执行 ctypes.util.find_library(sys.argv[1])
的程序。您不可能提前知道它将尝试加载哪些库。
在您的特定情况下,您应该能够通过包装 ctypes
来记录它在执行期间加载的所有库来解决这个问题。但是请注意,这仅在您的执行加载了它在任何执行中都需要的所有库时才有效,因此请确保您点击了所有相关的代码路径。