variable stringvar propiedades instalar example descargar python error-handling compiler-errors setuptools

python - stringvar - ¿Cómo puedo detectar errores programáticamente al construir un huevo con herramientas de configuración?



stringvar tkinter python 3 (1)

Si tengo un script que crea huevos, básicamente ejecutando

python setup.py bdist_egg --exclude-source-files

para una serie de archivos setup.py que usan setuptools para definir cómo se construyen los huevos, ¿hay alguna manera fácil de determinar si hubo algún error al construir el huevo?

Una situación que tuve recientemente, fue que había un error de sintaxis en un módulo. Setuptools escupió un mensaje en error estándar, pero continuó creando el huevo, omitiendo el módulo roto. Como esto formaba parte de un lote que creaba varios huevos, se omitió el error y el resultado fue inútil.

¿Hay alguna manera de detectar errores al construir un huevo programáticamente, aparte de simplemente capturar el error estándar y analizarlo?


distutils utiliza la función py_compile.compile() para compilar archivos fuente. Esta función toma un argumento doraise , que cuando se establece en True genera una excepción en los errores de compilación (el valor predeterminado es imprimir los errores en stderr). distutils no llama a py_compile.compile() con doraise=True , por lo que la compilación no se anula en los errores de compilación.

Para detenerse en los errores y poder verificar el código de retorno de setup.py (será distinto de cero en los errores), puede aplicar un parche a la función py_compile.compile() . Por ejemplo, en su setup.py :

from setuptools import setup import py_compile # Replace py_compile.compile with a function that calls it with doraise=True orig_py_compile = py_compile.compile def doraise_py_compile(file, cfile=None, dfile=None, doraise=False): orig_py_compile(file, cfile=cfile, dfile=dfile, doraise=True) py_compile.compile = doraise_py_compile # Usual setup...