Запуск Python-скрипта .py из скрипта CGI - PullRequest
0 голосов
/ 04 апреля 2009

Я пытаюсь запустить скрипт .py из скрипта cgi при запуске локального сервера cgi. Сценарий cgi просто получает некоторые данные из Google Планета Земля и передает их в сценарий .py, который в данный момент вызывается с использованием execfile ('script.py'), размещенного в конце сценария cgi.

Сценарий запускается до конца, однако script.py содержит некоторые операторы печати, которые мне необходимо отслеживать во время выполнения процесса. Все ошибки в .py печати в окне консоли localhost и операторах печати, похоже, буферизируются.

Есть ли способ отправить вывод из .py в другое окно консоли Python, когда запущена консоль localhost?

Кажется, что модуль подпроцесса должен делать то, что мне нужно, но я только смог отправить вывод в переменную или файл журнала. Это нормально, за исключением того, что мне нужно видеть операторы печати в режиме реального времени.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 04 апреля 2009

Вы говорите, что запускаете скрипт Python из скрипта CGI, но не указываете, на каком языке написан скрипт CGI. Поскольку CGI - это просто интерфейс, неясно, на каком языке написан скрипт CGI Я собираюсь принять Python, так как это имеет смысл.

Лучше всего было бы записать ваши сообщения в файл журнала. В вашем файле «script.py» вместо использования print вы должны открыть файл журнала для добавления, например:

logfile = file("/var/log/my-app-log.txt", "a")

Тогда, где бы у вас не было печатного заявления, подобного этому:

print("Starting to do step 2...")

Измените его на оператор logfile.write (), например:

logfile.write("starting to do step 2...\n")

Обратите внимание, что вам нужно будет добавлять новые строки отдельно, так как file.write () не добавляет один для вас.

Затем вы можете наблюдать за тем, что происходит в вашем скрипте, с помощью команды, подобной tail:

tail -f /var/log/my-app-log.txt

Это покажет данные, как они добавляются в ваш файл журнала.

0 голосов
/ 04 апреля 2009

Используйте popen2 или подпроцесс для запуска консоли при перенаправлении потока вывода на эту консоль.

...