12

件名は自己記述的setup.py buildです。追加のビルド手順を実行するには、コマンドをサブクラス化する必要があります。ただしbuild、継承するコマンドクラスを見つけることができませんでした。私は試してきました:

class BuildCommandProxy(setuptools.command.build):
    pass

class BuildCommandProxy(distutils.command.build):
    pass

そしてさえ:

class BuildCommandProxy(setuptools.distutils.command.build):
    pass

成功せずに。

更新:。を使用してこのようなものを実装する方法を探していますsetuptools

UPDATE2:カスタムコマンドの実装があります:

class CustomCommand(setuptools.Command):
    # ...

私が実装したいのは、このコマンドを次cmdclassのように渡すことです。

cmdclass={
    "build": CustomCommand,
}

次に、いくつかのカスタム手順を実行した後、でオリジナルbuildを呼び出します。CustomCommand.run

4

2 に答える 2

13

distutils buildSetuptoolsはコマンド自体をオーバーライドしません。build_pyおよびサブコマンドのみbuild_ext

したがって、独自のサブクラスを作成するには、クラス(のサブクラス)を含むdistutils.command.build モジュールからインポートする必要があります。buildCommand

import distutils.command.build

class BuildCommandProxy(distutils.command.build.build):
    pass
于 2013-02-01T11:08:35.973 に答える
3

完全を期すために、カスタムビルド操作を追加する方法の完全な例を次に示します。

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})
于 2017-05-02T01:36:04.120 に答える