主题是自描述的:我需要继承setup.py build
命令以执行其他构建步骤。但是我没有找到任何继承的build
命令类。我一直在努力:
class BuildCommandProxy(setuptools.command.build):
pass
和
class BuildCommandProxy(distutils.command.build):
pass
甚至:
class BuildCommandProxy(setuptools.distutils.command.build):
pass
没有任何成功。
更新:寻找如何使用setuptools
实现this之类的内容。
UPDATE2 :我有一些自定义命令实现:
class CustomCommand(setuptools.Command):
# ...
我想要实现的是将此命令传递给cmdclass
,如下所示:
cmdclass={
"build": CustomCommand,
}
然后在执行一些自定义步骤后调用build
中的原始CustomCommand.run
。
答案 0 :(得分:8)
Setuptools不会覆盖distutils
build
命令本身;只有build_py
和build_ext
子命令。
因此,要创建自己的子类,需要从distutils.command.build
模块导入,该模块包含build
类(Command
的子类):< / p>
import distutils.command.build
class BuildCommandProxy(distutils.command.build.build):
pass
答案 1 :(得分:1)
为了完整性,以下是如何添加自定义构建操作的完整示例:
import distutils.command.build
# Override build command
class BuildCommand(distutils.command.build.build):
def run(self):
# Run the original build command
distutils.command.build.build.run(self)
# Custom build stuff goes here
# Replace the build command with ours
setup(...,
cmdclass={"build": BuildCommand})