【发布时间】:2020-12-18 03:43:06
【问题描述】:
我正在构建一个 c++ python 扩展。到目前为止,我为 Linux 和 Windows 创建了版本。目前,我正在为 MacOS 版本而苦苦挣扎。 CMake 生成 2 个库:
43898860 Aug 29 13:40 libslide_io.dylib
214876 Aug 29 13:40 slideio.cpython-35m-darwin.so
我将它们打包到一个 whl 文件中。使用 pip 安装后,当我尝试导入包时,出现以下错误:
(sld-35)dist % python -c "import slideio"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: dlopen(/Users/.../opt/anaconda3/envs/sld-35/lib/python3.5/site-packages/slideio.cpython-35m-darwin.so, 2): Library not loaded: libslide_io.dylib
Referenced from: /Users/.../opt/anaconda3/envs/sld-35/lib/python3.5/site-packages/slideio.cpython-35m-darwin.so
Reason: image not found
两个库都正确放置到python环境目录下:
/Users/.../opt/anaconda3/envs/sld-35/lib/python3.5/site-packages/
此外,如果我解压缩 whl 文件并从当前目录导入包,它可以工作。
我怀疑它与我的 cmake 文件中的 rpath 设置有关,但找不到正确的解决方案。我所有的尝试都失败了。
我将不胜感激。
【问题讨论】: