Pulizia cartella di generazione in setup.py
Domanda
Come potrei fare il mio setup.py
pre-Canc e post-delete la cartella di generazione?
Soluzione
Per la pre-eliminazione, è sufficiente eliminarlo con distutils.dir_util.remove_tree
prima di chiamare l'installazione.
In fase di post-delete, presumo desideri solo al post-cancellare dopo comandi selezionati. Sottoclasse il rispettivo comando, sostituire il suo metodo run (per invocare remove_tree dopo aver chiamato la corsa di base), e passare il nuovo comando nel dizionario cmdclass di configurazione.
Altri suggerimenti
La questo rispondere? IIRC, avrete bisogno di usare la bandiera --all
per sbarazzarsi di roba al di fuori del build/lib
:
python setup.py clean --all
Questo cancella la cartella di generazione prima di installare
python setup.py clean --all install
Ma in base alle proprie esigenze: questo lo farà prima, e dopo
python setup.py clean --all install clean --all
Ecco una risposta che combina l'approccio programmatico della risposta di Martin con la funzionalità di risposta di Matt (un clean
che si prende cura di tutte le possibili aree di 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}
)