472 Stimmen

Wie kann ich die Syntax eines Python-Skripts überprüfen, ohne es auszuführen?

Ich benutzte früher perl -c programfile um die Syntax eines Perl-Programms zu prüfen und es dann zu beenden, ohne es auszuführen. Gibt es eine gleichwertige Möglichkeit, dies für ein Python-Skript zu tun?

735voto

Mark Johnson Punkte 13564

Sie können die Syntax überprüfen, indem Sie sie kompilieren:

python -m py_compile script.py

71voto

user225312 Punkte 117771

Sie können diese Tools verwenden:

28voto

Rosh Oxymoron Punkte 19299
import sys
filename = sys.argv[1]
source = open(filename, 'r').read() + '\n'
compile(source, filename, 'exec')

Speichern Sie dies als checker.py und führen Sie python checker.py yourpyfile.py .

27voto

jmd_dk Punkte 10751

Hier ist eine andere Lösung, die die ast Modul:

python -c "import ast; ast.parse(open('programfile').read())"

Um dies sauber aus einem Python-Skript heraus zu tun:

import ast, traceback

filename = 'programfile'
with open(filename) as f:
    source = f.read()
valid = True
try:
    ast.parse(source)
except SyntaxError:
    valid = False
    traceback.print_exc()  # Remove to silence any errros
print(valid)

22voto

Brian C. Punkte 4692

Pyflakes tut, was Sie verlangen, es prüft nur die Syntax. Aus der Doku:

Pyflakes gibt ein einfaches Versprechen ab: Es wird sich niemals über den Stil beschweren, und es wird sich sehr, sehr bemühen, keine falsch-positiven Ergebnisse auszugeben.

Pyflakes ist auch schneller als Pylint oder Pychecker. Das liegt vor allem daran, dass Pyflakes nur den Syntaxbaum jeder Datei einzeln untersucht.

Installation und Verwendung:

$ pip install pyflakes
$ pyflakes yourPyFile.py

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X