You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于目标操作系统构建Wheel并安装对应版本的Python依赖包?

解决方案

你的问题核心在于依赖包的选择逻辑在构建阶段就被固定了——platform.system()是在你生成wheel文件的机器上执行的,导致最终wheel里的依赖是单一固定的,无法适配用户实际安装时的操作系统。

要解决这个问题,需要使用PEP 508定义的环境标记(Environment Markers),把依赖选择逻辑延迟到安装阶段执行,让pip根据用户的操作系统自动匹配对应包。

修改后的setup.py代码如下:

from setuptools import find_packages, setup

setup(
    ...
    install_requires=[
        "glob2>=0.7",
        "numpy>=1.26.4",
        # macOS系统安装polars-lts-cpu,其他系统安装polars
        "polars-lts-cpu>=1.12.0; sys_platform == 'darwin'",
        "polars>=1.12.0; sys_platform != 'darwin'"
    ]
    ...
)

关键说明:

  • sys_platform是PEP 508标准的环境变量,对应Python的sys.platform:macOS系统返回darwin,Linux返回linux,Windows返回win32。
  • 这种写法会让pip在安装时,根据当前运行的操作系统自动选择对应的Polars包,完全不受构建wheel时的系统限制。

内容的提问来源于stack exchange,提问作者FiReTiTi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:06:08