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

如何用setuptools在非macOS环境下排除appscript库?

解决非macOS系统排除appscript依赖的问题

你之前的写法错误在于**setuptools.find_packages()的exclude参数作用对象是你自己项目的本地包目录**,用来排除你代码里的子模块(比如测试目录),和第三方依赖包完全无关,所以根本没法阻止非mac系统安装appscript。

下面是两种正确的解决方法:

方法一:使用环境标记(推荐,符合PyPI标准)

直接在install_requires里给appscript加上系统限定,只有macOS(Darwin)环境才会安装它:

from setuptools import setup

setup(
    # 你的包名称、版本等信息
    name="your-package-name",
    version="0.1.0",
    # 其他配置...
    install_requires=[
        # 在这里添加你的其他通用依赖
        "requests>=2.25.1",
        # 仅在macOS下安装appscript
        "appscript==1.2.0; platform_system == 'Darwin'"
    ],
    packages=setuptools.find_packages()  # 这里不需要exclude,正常找你自己的代码包
)

方法二:通过代码判断系统后构造依赖列表

如果更习惯用条件判断的方式,可以在setup.py里先检测系统,再决定是否添加appscript到依赖:

import platform
from setuptools import setup

# 先定义通用依赖
install_requires = [
    "requests>=2.25.1",
    # 其他通用依赖...
]

# 仅在macOS系统下添加appscript
if platform.system() == "Darwin":
    install_requires.append("appscript==1.2.0")

setup(
    name="your-package-name",
    version="0.1.0",
    install_requires=install_requires,
    packages=setuptools.find_packages()
)

这两种方法都能让pip在非macOS系统下自动跳过appscript的安装,避免编译错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 09:06:18