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

Is it possible to create pip packages for a specific operating system?

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

另一个例子,假设 Stripe 想发布其 Python SDK 并通过 pip 使其 Mac-仅供 Python 用户使用,这可能吗?

我非常希望得到所有答案,因为我很想知道这是否可行!我只想知道这是否可能。感谢那些做出回应的人。

您必须同时考虑 sdistwheel 分布。

对于 sdist 你能做的不多,它们是多平台时期。您可以在 setup.py 中添加安全防护,以便 运行 它在某些平台上失败,但这远非优雅。最佳做法是通过“trove classifiers”清楚地记录您的项目仅适用于特定平台,例如通过您的 long_description and/or README.

对于 wheel,您可以只构建特定于平台的 wheel,这是 wheel 擅长的事情之一:

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

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