python - 如何处理上传到 PyPI 的“平台特定动态库”问题?
问题描述
我有一个依赖于二进制文件的 Python 包。我已经构建了 linux 版本,它可以在 PyPI 上使用。关键是设置package_data
参数以确保*.so
文件也上传到 PyPI。
现在我想对 Windows 做同样的事情,这显然需要*.dll
依赖项,而不是*.so
. 将我的包上传到 PyPI 时,是否可以上传*.so
用户在 linux 平台上下载我的包时的*.dll
文件以及用户在 Windows 上时的文件。我预见的问题是,如果我必须为所有平台上传所有二进制文件,我的包将很快超过 PyPI 的大小限制。
解决方案
这就是构建发行版的兼容性标签的用途。
例如,考虑https://pypi.org/project/numpy/#files。它发布了以下轮子:
numpy-1.18.5-cp38-cp38-macosx_10_9_x86_64.whl
numpy-1.18.5-cp38-cp38-manylinux1_i686.whl
numpy-1.18.5-cp38-cp38-manylinux1_x86_64.whl
numpy-1.18.5-cp38-cp38-win32.whl
numpy-1.18.5-cp38-cp38-win_amd64.whl
其中每一个都包含给定平台的特定于平台的依赖项。
推荐阅读
- arrays - 使用 Mongo 进行排序分组
- javascript - 在 iOS 中,HTML 选择元素不会在触摸开始时更新其选定值?
- cakephp - 使用相同的键但不同的 _joinData 保存 belongsToMany 关联
- elf - 关于 ELF header 中 GOT & PLT 结构的必要性
- oracle - Oracle Regex 排除一个词(仅在找到时)
- python - 如何在 Python 中比较两个数据集 VS NULL 之间的差异
- c# - StreamWriter 变量声明延迟
- python - 在 DAI 中部署期间,用于对新预测进行评分的最终阈值是什么/在哪里?
- java - 如何像许多自定义启动器一样制作“向上滑动”功能?
- python - 使用 tfrecordwriter 循环功能时,将 numpy 写入 tfrecord 很慢