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

Where does ctypes LoadLibrary() search for libs on OS X?

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

这个有效:

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

然而,

LoadLibrary("my_library.dylib")

不起作用,即使 /full/path/to)PATHPYTHONPATH.

On OSX(与(几乎)任何 Nix 一样),CTypes 使用 dlopen 打开一个 .so (.dylib)。根据[Apple.Developer]: DLOPEN(3)(或man dlopen)(重点是我的):

When path doesn't contain a slash character (i.e. it is just a leaf name), dlopen() searches the following until it finds a compatible Mach-O file: $LD_LIBRARY_PATH, $DYLD_LIBRARY_PATH, current working directory, $DYLD_FALLBACK_LIBRARY_PATH.

因此,您可以像这样启动脚本(其中 %s 标记占位符):

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:%PATH_TO_YOUR_LIB_DIR% %COMMAND_LAUNCHING_SCRIPT%