ctypes LoadLibrary()在OS X的哪里搜索库?

时间:2019-10-31 14:51:04

标签: python macos ctypes

在Mac OS X上ctypes LoadLibrary()在哪里搜索共享库?

这有效:

LoadLibrary("/full/path/to/my_library.dylib")

但是

LoadLibrary("my_library.dylib")

即使/full/path/to)PATH中的PYTHONPATH也无效。

1 个答案:

答案 0 :(得分:2)

OSX 上(与(几乎)任何 Nix 一样), CTypes 使用 dlopen 打开< em> .so ( .dylib )。根据{{​​3}}(man dlopen):

  

path 不包含斜杠字符(即,只是叶子名称)时, dlopen()搜索以下内容,直到找到兼容的Mach-O文件: $ LD_LIBRARY_PATH $ DYLD_LIBRARY_PATH ,当前工作目录, $ DYLD_FALLBACK_LIBRARY_PATH