一尘不染

如何使osx上的python加载dylib

python

尝试从当前“。”中加载共享库。dir在osx上进行单元测试。

在Linux和Netbsd上有效的是一个符号链接 _mymodule.so --> ../.libs/libmymodule.so

但在osx上,import mymodule找不到python

_mymodule.dylib --> ../.libs/libmymodule.dylib

我尝试添加

export DYLD_LIBRARY_PATH=.:$DYLD_LIBRARY_PATH

到脚本env,nogo。任何帮助表示赞赏。

-埃德

更新4/6/10:

解决了下面来自krunk的信息。但是仅将dylib复制或ln -s到.so名称并不能完全解决它。仍然不会加载。但是,告诉libtool将lib与-
module标志链接起来会创建一个将加载的.so lib。该库的Python版本现在可以使用了。

现在,如果我能使perl lib正常工作。我正在构建swig perl,python,ruby和lua库,并且此修复程序仅使python和lua工作。


阅读 280

收藏
2021-01-20

共1个答案

一尘不染

只需将* .so用作OS X中的模块扩展即可。我有一个无法加载.dylib的模糊记忆,事实证明这是python本身的问题。。。但是我现在找不到邮件列表帖子。

但是,请放心,即使在OS X上也使用 .so来遵循标准实践。整个框架中唯一的 .dylib是libsvn_swig。

find /System/Library/Frameworks/Python.framework/Versions/2.6/ -name "*.so"

/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/X11/xcb/xcb.0.0.0.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/X11/xcb/xcb.0.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/X11/xcb/xcb.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/CoreGraphics/_CoreGraphics.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/OpenSSL/SSL.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/OpenSSL/crypto.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/OpenSSL/rand.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/PyObjC/AppKit/_appmain.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/PyObjC/AppKit/_carbon.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/PyObjC/AppKit/_inlines.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/PyObjC/AppKit/_nsbezierpath.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/PyObjC/AppKit/_nsbitmap.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/PyObjC/AppKit/_nsfont.so
 /System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/PyObjC/AppKit/_nsquickdrawview.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/PyObjC/AppKit/_nsview.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/PyObjC/AppKit/_nswindow.so
/System/Library/Frameworks/Python.framework/Versions/2.6//Extras/lib/python/PyObjC/CFNetwork/_manual.so
2021-01-20