是否可以为特定操作系统创建 pip 包?

问题描述

我只是想知道这是否可能。例如,假设我只想为 Linux 构建一个 pip 包,或者为 Windows 和 Mac 构建一个 pip 包但不包括 Linux,是否可以这样做?还是所有 pip 包在发布后都可用于所有 3 个平台(Windows、Mac 和 Linux)?

再举一个例子,假设 Stripe 想要发布其 Python SDK 并通过 pip 使其仅适用于 Python 用户,这可能吗?

我绝对会感谢所有答案,因为我很想知道这是否可行!我只是想知道这是否可能。感谢那些做出回应的人。

解决方法

您必须同时考虑 sdistwheel 分布。

对于sdist,您无能为力,它们是多平台时期。您可以在 setup.py 中添加安全保护,以便在某些平台上运行它会失败,但这远非优雅。最佳做法是通过“trove classifiers”明确记录您的项目仅适用于特定平台,例如通过您的 long_description 和/或 README。 >

对于wheel,你可以让它只构建特定于平台的轮子,这是轮子擅长的事情之一:

但最佳实践建议您在任何情况下也发布 sdist,因此在其他平台上,安装程序将回退到 sdist

总而言之,您可以构建特定于平台的wheels,但不能构建特定于平台的sdist。正确记录您的项目(使用 trove 分类器)以声明支持哪些平台。