7

试图从当前的 '.' 中加载一个共享库。dir 在 osx 上的单元测试中。

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

但在 osx 上,pythonimport mymodule找不到

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

我试过添加

export DYLD_LIBRARY_PATH=.:$DYLD_LIBRARY_PATH

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

-埃德

2010 年 4 月 6 日更新:

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

现在,如果我能让 perl 库正常工作。我正在构建 swig perl、python、ruby 和 lua 库,而这个修复只让 python 和 lua 工作。

4

1 回答 1

13

只需使用 *.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
于 2010-04-06T03:38:43.360 回答