2009-10-20 17 views

Odpowiedz

6

Dla wstępnego usunięcia, po prostu usunąć go z distutils.dir_util.remove_tree przed wywołaniem konfiguracji.

W przypadku post-delete zakładam, że chcesz tylko usuwać posty po wybranych poleceniach. Podklasuj odpowiednie polecenie, nadpisaj jego metodę uruchamiania (aby wywołać remove_tree po wywołaniu podstawowego uruchomienia) i przekaż nowe polecenie do słownika cmdclass setup.

73

Czy odpowiada this? IIRC, musisz użyć flagi --all pozbyć się rzeczy poza build/lib:

python setup.py clean --all 
+0

Wydaje się, że nie wszystkie skrypty 'setup.py' obsługują' clean'. Przykład: NumPy – kevinarpe

3

Oto odpowiedź, która łączy w sobie programowe podejście odpowiedź Marcina z funkcjonalnością odpowiedź Matta (a clean która dba o wszystkich możliwych obszarach Build):

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

czyści katalogu build przed zainstalować

python setup.py clean --all install 

Ale zgodnie z własnymi wymaganiami: będzie to zrobić przed i po

python setup.py clean --all install clean --all 
Powiązane problemy