Domanda

Come potrei fare il mio setup.py pre-Canc e post-delete la cartella di generazione?

È stato utile?

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}
    )
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top