Pregunta

Pylint está haciendo algo raro en mi caja de Windows - algo que no debería ser posible. Esta no es una cuestión sobre la fijación de pylint, tanto como la fijación de mi comprensión.

Tengo una instalación típica de la última versión del pylint, Python 2.6 y Windows Vista.

Si abrir un símbolo del sistema y ejecute pylint desde la línea de comandos, se ejecuta correctamente, entonces cuando se llega al final del programa, que no se limita a la salida de la línea de comandos de nuevo, pero se cierra todo el Comando ventana del símbolo.

Yo tenía un breve vistazo al código en línea (que supongo es el código que es en realidad se está ejecutando) y que están llamando sys.exit () con diferentes niveles de error, pero mi lectura y pruebas sugiere que aún debe simplemente retorno a la línea de comandos con la puesta a nivel de error apropiado.

Pylint también se ejecuta como parte del régimen de pruebas de mi proyecto, y funciona allí, lo que sugiere a mí que si se llama como un método de Python en lugar de la línea de comandos, no tiene el mismo problema (probablemente sin llamar a sys.exit () en esta ruta de código.)

Por qué mecanismo podría pylint cerca de la "cáscara" que la contenía?

Si esto un error en Pylint? No veo cómo. Un error en Python? Un error en Windows?

¿Fue útil?

Solución

he intentado esto en XP:

t.bat:

  

exit

Al ejecutar este se cierra la ventana!

Tal vez la línea de comandos para pylint utiliza un archivo por lotes que contiene una salida?

Otros consejos

Esta es una solución muy fácil. Entra en las secuencias de comandos de Python carpeta y localice pylint.bat y abrirlo en el Bloc de notas.

Se leerá el siguiente

@echo off
rem = """-*-Python-*- script
rem -------------------- DOS section --------------------
rem You could set PYTHONPATH or TK environment variables here
python -x "%~f0" %*
goto exit

"""
# -------------------- Python section --------------------
import sys
from pylint import lint
lint.Run(sys.argv[1:])


DosExitLabel = """
:exit
exit(ERRORLEVEL)
rem """

Para solucionar el problema en cuestión del cierre indicador de cambiar a la siguiente

@echo off
rem = """-*-Python-*- script
rem -------------------- DOS section --------------------
rem You could set PYTHONPATH or TK environment variables here
python -x "%~f0" %*
goto exit

"""
# -------------------- Python section --------------------
import sys
from pylint import lint
lint.Run(sys.argv[1:])


DosExitLabel = """
:exit
ECHO.
rem exit(ERRORLEVEL)
rem """

Básicamente todo lo que hice fue comentar la salida (ERRORLEVEL) con la palabra clave "reales", entonces antes de que se remonta a la pronta añadí en una línea en blanco de impresión con "ECHO". de manera que el indicador no llega sesgada a la salida.

Este es http://www.logilab.org/ticket/19498 prevista para 0.20.0 (actualmente en desarrollo).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top