CGIHTTPServer: код ошибки 403 - PullRequest
       3

CGIHTTPServer: код ошибки 403

2 голосов
/ 22 июля 2011

я получил:

Ответ об ошибке Код ошибки 403. Сообщение: CGI-скрипт не выполняется ( '/Cgi-bin/main.pyc'). Объяснение кода ошибки: 403 = Запрос запрещено - авторизация не поможет.

при попытке запуска скомпилированного скрипта Python (.pyc) на CGIHTTPServer. нормальные скрипты Python (.py) работают нормально. cgi сервер выглядит так:

from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler

class CGIServer(HTTPServer):
    def __init__(self, (hostname,port), handler):
        HTTPServer.__init__(self, (hostname, port), handler)
srvaddr = ("", 8000)
cgisrv = CGIServer(srvaddr,CGIHTTPRequestHandler)
cgisrv.serve_forever()

есть ли возможность заставить это работать на Windows? Файлы .pyc связаны как файлы .py под окнами. даже Google не может сказать мне больше.

Спасибо

Ответы [ 2 ]

0 голосов
/ 16 сентября 2013

Вам нужно написать крошечную оболочку (в обычном Python), чтобы загрузить другой код в виде модуля.

Для более подробной информации, пожалуйста, ознакомьтесь с руководством по питону [1] и его комментариями:

  • Программа не запускается быстрее, когда она читается из файла ".pyc" или ".pyo", чем когда она читается из файла ".py";единственное, что быстрее в файлах ".pyc" или ".pyo" - это скорость, с которой они загружаются.

  • Когда сценарий запускается путемего имя в командной строке, байт-код сценария никогда не записывается в файл «.pyc» или «.pyo».Таким образом, время запуска скрипта может быть уменьшено путем перемещения большей части его кода в модуль и наличия небольшого загрузочного скрипта, который импортирует этот модуль.

К вашему сведению - я простопротестировал CGIHTTPServer со скриптом и скомпилированной версией того же скрипта.Я получил сообщение об ошибке, которую вы заметили, и когда я попытался запустить две версии в командной строке, при запуске версии .py был получен ожидаемый вывод, а при запуске версии .pyc на терминале была напечатана куча мусора.(Я не удосужился выяснить точный источник).В итоге - дважды проверьте, что вы можете запустить программу из командной строки в качестве базового теста.

[1] http://docs.python.org/release/1.5.1p1/tut/node43.html

0 голосов
/ 17 октября 2012

.pyc файлы - это скомпилированные скрипты Python, предназначенные для запуска самостоятельно.Я вполне уверен, что CGIHTTPServer не может запускать скомпилированные файлы Python, только сценарии с расширением .py.

Есть ли причина, по которой вы не можете использовать .py вместо этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...