我正在尝试从当前的“.”中加载共享库OSX 上单元测试中的 dir。
在 Linux 和 NetBSD 上起作用的是符号链接
_mymodule.so --> ../.libs/libmymodule.so
但是在 OSX 上,Python 的
import mymodule
找不到
_mymodule.dylib --> ../.libs/libmymodule.dylib
我尝试过添加
export DYLD_LIBRARY_PATH=.:$DYLD_LIBRARY_PATH
到脚本环境,不去。任何帮助表示赞赏。
-编辑
u日期 2010 年 4 月 6 日:
用下面 krunk 的信息解决了。但仅仅将 dylib 复制或 ln -s 为 .so 名称并不能完全解决问题。还是无法加载。但是告诉 libtool 将 lib 与 -module 标志链接起来会创建一个可以加载的 .so lib。 Python 版本的库现在可以运行了。
现在如果我能让 Perl 库工作就好了。我正在构建 Swig Perl、Python、Ruby 和 Lua 库,此修复仅使 Python 和 Lua 工作。
在 OS X 中也只需使用 *.so 作为模块扩展。我模糊地记得无法加载 .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