Можно ли вообще как-то обойтись без оператора print / newline в первой строке скрипта Python?
Вероятно, нет ... по крайней мере, не для использования Python через CGI.
Для данного сценария CGI (а не только в Python) языковой эквивалент этой «пустой строки» ( CRLF
) необходим в начале любых данных, возвращаемых в браузер. И хотя Apache извлекает путь и значение интерпретатора для Content-type
заголовка из реестра, он, похоже, не включает эту строку.
Это все еще требует дополнительного
print()
оператора в первой строке (илиprint('\n')
).
Для ясности, если есть какая-то путаница, это просто должна быть первая строка текста, которую вы выводите (если есть) из вашего скрипта, например:
# 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)
Примечание (для всех остальных): если у вас не все зарегистрировано, как OP, вам все еще нужен хеш-бэнг, такой как !# python
первая строка, и он должен раскомментировать print ('Content-type: text/html')
.