Is there any way at all to get around needing the print/newline statement on the first line of the Python script?
Provavelmente não ... pelo menos não para usar o Python via CGI.
Para um determinado script CGI (não apenas para o Python), o idioma equivalente a essa "linha em branco" ( CRLF
) é necessário no início de qualquer dado retornado ao navegador. E enquanto o Apache pega o caminho do interpretador e o valor do cabeçalho Content-type
do registro, parece não incluir esta linha.
It still requires an extra
print()
statement on the first line (orprint('\n')
).
Para maior clareza, no caso de haver alguma confusão, ela deve ser a primeira linha do texto que você produziu (se houver) no seu script, por exemplo:
# 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)
Observação (para todos os outros): se você não tiver tudo registrado como OP, ainda precisará de um hash-bang como !# python
na primeira linha e deve descomentar print ('Content-type: text/html')
.