根据目标自动将命令行选项添加到 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
。
这是一个标准配置文件,您可以在其中为每个构建目标/分发类型(sdist
、bdist_wheel
、bdist_wininst
等)定义一个部分,其中包含命令行构建时要给 setup.py 的选项。
当我 运行 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
。
这是一个标准配置文件,您可以在其中为每个构建目标/分发类型(sdist
、bdist_wheel
、bdist_wininst
等)定义一个部分,其中包含命令行构建时要给 setup.py 的选项。