微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在包创建期间安装在 /usr/local/lib/ 的共享库,而在包安装期间安装站点包 第一阶段:Python 轮子创建阶段 2:Python 轮安装问题

如何解决在包创建期间安装在 /usr/local/lib/ 的共享库,而在包安装期间安装站点包 第一阶段:Python 轮子创建阶段 2:Python 轮安装问题

第一阶段:Python 轮子创建

在构建 python 包时 [wheel] 使用

python setup.py bdist_wheel

wheel 包含 python 文件和包以及共享库 *.so

在编译共享库后,它们将安装在目标位置 /usr/local/lib/,这是 CMAKE_INSTALL_PREFIX认值。参考official doc

/usr/local/lib/<name>.cpython-36m-x86_64-linux-gnu.so
/usr/local/lib/libabc.so

在 site-packages 文件夹旁边

阶段 2:Python 轮安装

但是,在用户的机器中,当他/她尝试使用

安装车轮时
pip install <name>.whl

共享库只安装在site-packages目录下

/opt/conda/lib/python3.6/site-packages/<name>.cpython-36m-x86_64-linux-gnu.so
/opt/conda/lib/python3.6/site-packages/libabc.so

问题

我们如何确保共享库安装在 /usr/local/lib 文件夹中?

我们在 /usr/local/lib 中需要它,因为认的 LD_LIBRARY_PATH

# echo $LD_LIBRARY_PATH
/home/.openmpi/lib/:/opt/conda/lib:/usr/local/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64

不希望用户更新 LD_LIBRARY_PATH 以包含 /opt/conda/lib/python3.6/site-packages/

因此,理想的解决方案是确保 pip install 将共享库 (.so) 存储在 LD_LIBRARY_PATH 已经支持的目录中

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。