Попытка запустить python cgi-сервер из Eclipse на Ма c Air и отобразить hello world в Firefox, две проблемы. Вот код для запуска в файле run_server.py
from http.server import HTTPServer
from http.server import CGIHTTPRequestHandler
def run_server(handler_class,server_class=HTTPServer ):
server_address = ('', 8000)
httpd = server_class(server_address, handler_class)
httpd.serve_forever()
def main():
run_server(CGIHTTPRequestHandler)
if __name__ == '__main__':
main()
Структура каталога в каталоге проекта
analytics
\
run_server.py
cgi-bin
\
index.py
index.py
#!/usr/bin/env python
print('Content-type: text/html;\n\n')
print('<h1>Hello, world!</h1>')
Из Командную строку в каталоге проекта можно запустить с помощью
$ python -m analytics.run_server
Убедитесь, что в каталоге аналитики есть __init__.py, чтобы использовать опцию -m. Теперь попробуйте загрузить страницу
http://localhost:8000/cgi-bin/index.py
В Chrome все работает. Так в чем проблема? В Firefox URL никогда не найден. На Ma c также, если вы запускаете сервер изнутри Eclipse IDE, cgi пытается выполнить код python 3 с установленной ОС python 2 Firefox 404s, время ожидания, представляет пустую страницу, или если проблема с URL решена, попытается сохранить файл. Он также не обслуживает содержимое c, когда существует проблема с URL. Консоль Eclipse при запуске cgi отображает трассировку стека синтаксической ошибки из оператора печати python lib site.py, что указывает на природу проблемы. См. Что нового в Python 3
Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)
Простые решения для обеих сторон, в разделе ответов ниже.