どうすればsetup.py
ビルドディレクトリの削除前と削除後?
削除前に、セットアップを呼び出す前に、distutils.dir_util.remove_tree
で削除するだけです。
削除後の場合は、選択したコマンドの後にのみ削除することを想定しています。それぞれのコマンドをサブクラス化し、そのrunメソッドをオーバーライドして(基本runを呼び出した後にremove_treeを呼び出す)、新しいコマンドをセットアップのcmdclass辞書に渡します。
this 答えますか? IIRCでは、--all
フラグを使用して、build/lib
以外の要素を削除する必要があります。
python setup.py clean --all
これにより、インストールする前にビルドディレクトリがクリアされます。
python setup.py clean --all install
しかし、あなたの要件に応じて:これは前と後にそれを行います
python setup.py clean --all install clean --all
以下は、Martinの答えのプログラムによるアプローチとMattの答えの機能(可能なすべてのビルドエリアを処理するclean
)を組み合わせた答えです。
from distutils.core import setup
from distutils.command.clean import clean
from distutils.command.install import install
class MyInstall(install):
# Calls the default run command, then deletes the build area
# (equivalent to "setup clean --all").
def run(self):
install.run(self)
c = clean(self.distribution)
c.all = True
c.finalize_options()
c.run()
if __== '__main__':
setup(
name="myname",
...
cmdclass={'install': MyInstall}
)