Простой веб-сервер 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 или модуля подпроцесса.

http://docs.python.org/library/subprocess.html