python3 modulenotfounderror python build distutils

python - modulenotfounderror - Limpieza del directorio de compilación en setup.py



install python3 distutils (4)

¿Cómo puedo hacer que mi setup.py pre-elimine y elimine el directorio de compilación?


Para la eliminación previa, simplemente elimínelo con distutils.dir_util.remove_tree antes de llamar a la configuración.

Para la eliminación posterior, supongo que solo desea post-eliminar después de los comandos seleccionados. Subclase el comando respectivo, anule su método de ejecución (para invocar remove_tree después de llamar a la ejecución base) y pase el nuevo comando al diccionario de configuración de cmdclass.


Aquí hay una respuesta que combina el enfoque programático de la respuesta de Martin con la funcionalidad de la respuesta de Matt (una clean que se ocupa de todas las áreas de construcción posibles):

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} )


¿ Esto lo contesta? IIRC, necesitarás usar la bandera --all para deshacerte de cosas fuera de build/lib :

python setup.py clean --all


Esto borra el directorio de compilación antes de instalar

python setup.py clean --all install

Pero de acuerdo con sus requisitos: esto lo hará antes y después

python setup.py clean --all install clean --all