Gibt es überhaupt einen Weg, um herumzukommen und die Anweisung print / newline in der ersten Zeile des Python-Skripts zu benötigen?
Wahrscheinlich nicht ... zumindest nicht für die Verwendung von Python über CGI.
Für ein gegebenes CGI-Skript (nicht nur das in Python) wird das Sprachäquivalent dieser "leeren Zeile" ( CRLF
) am Anfang aller an den Browser zurückgegebenen Daten benötigt. Und während Apache den Interpreterpfad und den Wert für den Content-type
Header aus der Registrierung bezieht, scheint diese Zeile nicht zu enthalten.
Es erfordert noch eine zusätzliche
print()
Anweisung in der ersten Zeile (oderprint('\n')
).
Der Klarheit halber muss es bei Verwirrungen lediglich die erste Textzeile sein, die Sie (falls vorhanden) aus Ihrem Skript ausgeben, z. B .:
# Print our Python version import sys version = sys.version_info full_version = str(version.major) + '.' + str(version.minor) + '.' + str(version.micro) # 8000 more lines that don't include print()... # === Our first line(s) of text output === # print ('Content-type: text/html') print ('') print ('Python Version: ', full_version)
Hinweis (für alle anderen): Wenn Sie nicht alles wie OP registriert haben, benötigen Sie immer noch einen Hash-Bang wie in der !# python
ersten Zeile und sollten ein Kommentar abgeben print ('Content-type: text/html')
.