Domanda

pylint sta facendo qualcosa di strano sulla mia macchina Windows - qualcosa che non dovrebbe essere possibile. Questa non è una domanda circa la fissazione pylint, tanto da fissare la mia comprensione.

ho una tipica installazione della versione più recente di pylint, Python 2.6 e Windows Vista.

Se apro un prompt dei comandi, e pylint eseguire dalla riga di comando, esegue con successo, poi quando si arriva alla fine del programma, lo fa non solo uscita sulla riga di comando di nuovo, ma chiude l'intero comando finestra del prompt.

Ho avuto un breve sguardo al codice online (che presumo è il codice che in realtà è in esecuzione) e stanno chiamando sys.exit () con diversi livelli di errore, ma la mia lettura e test suggerisce che dovrebbe ancora solo ritorno alla riga di comando con il set errore a livello appropriato.

pylint viene anche eseguito come parte del regime di sperimentazione del mio progetto, e funziona là, suggerendo a me che se si chiama come un metodo di Python piuttosto dalla riga di comando, non ha lo stesso problema (probabilmente no chiamare per sys.exit () in questo percorso di codice.)

Con quale meccanismo potrebbe pylint chiudere il "guscio" che conteneva?

Se questo un bug in pylint? Non vedo come. Un bug in Python? Un bug in Windows?

È stato utile?

Soluzione

Ho appena provato questo su XP:

t.bat:

  

exit

L'esecuzione di questo chiude la finestra!

Forse la riga di comando per pylint utilizza un file batch che contiene un'uscita?

Altri suggerimenti

Questa è una correzione molto facile. Andate in vostri script python cartella e individuare pylint.bat e aprirlo in blocco note.

Si leggerà il seguente

@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 """

Per risolvere il problema a portata di mano della chiusura pronta modificarlo al seguente

@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 """

In pratica tutto quello che ho fatto è stato commentare l'uscita (ERRORLEVEL) con parola chiave "rem" di prima risale al prompt ho aggiunto in una stampa riga vuota con "ECHO". in modo che la richiesta non ottiene distorta con l'uscita.

Questa è http://www.logilab.org/ticket/19498 prevista per 0.20.0 (attualmente in fase di sviluppo).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top