根据目标自动将命令行选项添加到 setup.py

Automatically add command line options to setup.py based on target

当我 运行 setup.py 时,我通常想根据我正在构建的分发类型向调用添加不同的命令行选项。

例如,如果我构建 windows 安装程序 (bdist_wininst),我想添加 --user-access-control force。 另一个例子是在构建源分发时省略对 post-install-script 的调用。

我目前的解决方案是创建小的 .bat 和 .sh 脚本,并根据需要调用 setup.py,但感觉有点不对。 有没有更好的方法来做我想做的事,还是我的直觉让我失望了?

编辑:找到正确的方法。请参阅下面我的回答。

一种方法是检测 setup.py 中的 OS:

import os
print(os.name)

if os.name == 'posix':
    ...

原来 "correct" 的方法非常简单,我只是在查看文档时错过了它:

使用setup.cfg 这是一个标准配置文件,您可以在其中为每个构建目标/分发类型(sdistbdist_wheelbdist_wininst 等)定义一个部分,其中包含命令行构建时要给 setup.py 的选项。