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

如何构建可根据目标操作系统条件引入依赖的Python包

根据目标操作系统动态添加Python包依赖的解决方案

你完全可以不用发布多个版本,利用setuptools支持的**环境标记(environment markers)**就能实现安装时根据目标系统自动选择依赖。

环境标记允许你在install_requires中为依赖添加条件,这些条件会在目标机器执行pip install时被评估,而不是打包时。

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

from setuptools import setup, find_packages

setup(
    name="my_app",
    version="0.1.0",  # 替换成你的实际版本号
    license="BSD",
    author="first_name last_name",
    author_email="first.last@mymail.com",
    packages=find_packages(),
    install_requires=[
        "redis",
        # 仅在Linux或macOS系统下安装redis-server
        "redis-server; sys_platform == 'linux' or sys_platform == 'darwin'"
    ],
)

关键说明:

  • 环境标记的语法是依赖包名; 条件表达式,条件表达式基于Python的sys模块属性:
    • Windows系统对应sys_platform值为win32
    • Linux系统对应linux
    • macOS系统对应darwin
  • 这个逻辑会在用户执行pip install my_app时触发:Windows机器只会安装redis,Linux/macOS机器会同时安装redis和redis-server。
  • 无论你在哪个系统打包(比如Windows),生成的wheel或源码包都能在所有目标系统上正确识别并安装对应依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 07:04:57