PHP前端开发

Python+Cython+PyAV项目如何构建包含第三方动态链接库的Wheel包?

百变鹏仔 2个月前 (01-14) #Python
文章标签 第三方

python+cython+pyav如何构建包含第三方动态链接库的wheel包?

问题答案:需要使用auditwheel、delocate这样的工具

参考:
python 第三方包安装路径site-packages下的以.libs结尾的路径是干嘛的?
how to build and distribute a python/cython package that depends on third party libfoo.so
how to build whl with numpy.libs

在linux存储这些第四方动态链接库,一般都是放在第三方包同级的xxx.libs文件夹下面

立即学习“Python免费学习笔记(深入)”;

但是好像不也全是这样,比如linux下的pandas包,是放到pandas/_libs/下面的

自述文件给出构建轮子包的说明:

python setup.py sdist bdist_wheel

注意事项:

生成的轮子包可能不包含第三方动态链接库,因此需要使用auditwheel repair修复它们:

auditwheel repair av-10.0.0-cp310-cp310-linux_x86_64.whl

需要注意,此时的轮子包名称会变成:

wheelhouse/av-10.0.0-cp310-cp310-manylinux_2_35_x86_64.whl

最后,为了确保轮子包是兼容的,还需要使用delocate工具:

delocate wheelhouse/av-10.0.0-cp310-cp310-manylinux_2_35_x86_64.whl dist

这样就生成了包含第三方动态链接库的轮子包了。