2009-10-20 12 views

答えて

6

事前に削除するために、ちょうどセットアップを呼び出す前distutils.dir_util.remove_treeでそれを削除します。

削除後は、選択したコマンドの後に投稿を削除したいとします。それぞれのコマンドをサブクラス化し、runメソッドをオーバーライドし(ベースランを呼び出した後にremove_treeを呼び出す)、新しいコマンドをsetupのcmdclassディクショナリに渡します。ここで

73

thisにお答えしますか? IIRC、あなたはbuild/libの外のものを取り除くために--allフラグを使用する必要があります:

python setup.py clean --all 
+0

すべての 'setup.py'スクリプトが' clean'をサポートしているとは思われません。例:NumPy – kevinarpe

3

はマットの回答(すべての可能なビルド領域の世話を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 __name__ == '__main__': 

    setup(
     name="myname", 
     ... 
     cmdclass={'install': MyInstall} 
    ) 
2

これは、ビルドディレクトリをクリアし

python setup.py clean --all install 

しかし、あなたの要件に応じて:これは前にそれを行う、と後になります

python setup.py clean --all install clean --all 
関連する問題