Простой веб-сервер CGI в Python на VMS
Я пытаюсь запустить чрезвычайно простой сервер CGI на VMS, выполненный в python.
import sys
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler
server_address=('',8080)
httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
httpd.serve_forever()
проблема в том, что он правильно обслуживает статический контент и пытается выполнить CGI-s (он находится в нужном месте, и я использовал эти CGIs с Apache, так что часть определенно не проблема), но он где-то висит. Это что-то, чего я не знаю о VMS.
любой указатель на правильное направление будет оценен. :)
Обновление: Упрощенный, Мне нужно выполнить программу на VMS и как-то получить результаты этой программы. Для меня достаточно любой ссылки на выполнение подпроцессов и получение их результатов.
3 ответов
вы используете порт Python из http://hg.vmspython.org/vmspython/ ?
если это так, я думаю этой теме и этот файл (который, как представляется, реализует форму popen2
), возможно, ключ к вашему спасению. По-видимому, существуют модули, специфичные для VMS (по крайней мере vms.starlet
, vms.rtl.lib
, vms.dvidef
, vms.clidef
) в порту, который предоставляет интерфейсы для таких вещей, как VMS
CGIHTTPServer.py
использует os.fork
если имеется, subprocess.Popen
если не.
посмотреть исходный код run_cgi
метод.
эксперимент с subprocess
модуль, чтобы узнать, работает ли/как он на VMS.
для выполнения подпроцесса и получения его вывода на posix:
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from subprocess import Popen, PIPE
>>> output = Popen(['/bin/ls', '/'], stdout = PIPE).communicate()[0]
>>> print output
bin
boot
dev
etc
home
..snip..
root
sbin
>>>
это явно на Linux, поэтому я не уверен в каких-либо особенностях VMS для Python или модуля подпроцесса.