如何让Python在OSX上加载dylib?

问题描述 投票:0回答:1

我正在尝试从当前的“.”中加载共享库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 工作。

python macos dylib
1个回答
15
投票

在 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
© www.soinside.com 2019 - 2024. All rights reserved.