gpt4 book ai didi

Python runtime_library_dirs 在 Mac 上不起作用

转载 作者:太空狗 更新时间:2023-10-29 22:26:43 24 4
gpt4 key购买 nike

我有一个 Python 扩展模块需要在运行时链接到一些动态库,所以我需要告诉它在哪里寻找它们。我通过在我的 setup.py 中指定 runtime_library_dirs 来做到这一点。这在 Linux 上运行良好,但在 Mac 上似乎没有效果。当我尝试导入我的模块时出现 ImportError,我发现让它消失的唯一方法是在启动 python 之前将库目录添加到 DYLD_LIBRARY_PATH。我需要做什么才能完成这项工作?

最佳答案

我终于明白了。该解决方案有两个部分。首先,setup.py 需要使用 extra_link_args 来告诉链接器将正确的 rpath 添加到已编译的模块中:

if platform.system() == 'Darwin':
extra_link_args.append('-Wl,-rpath,'+lib_path)

其中 lib_path 是库的安装目录。其次,您链接的所有库必须具有以“@rpath/”开头的安装名称。例如,如果一个库名为“libFoo.dylib”,它的安装名称应该是“@rpath/libFoo.dylib”。您可以使用“install_name_tool -id”来更改库的安装名称。

关于Python runtime_library_dirs 在 Mac 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19123623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com