6

Pythonで行われたVMSで非常に単純なCGIサーバーを実行しようとしています。

import sys    
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler    
server_address=('',8080)
httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
httpd.serve_forever()

私が抱えている問題は、静的コンテンツを適切に提供し、CGI を実行しようとすることです (適切な場所にあり、これらの CGI を Apache で使用したので、その部分は間違いなく問題ではありません)。それは私が VMS について知らないことです。

正しい方向へのポインタをいただければ幸いです。:)

更新: 簡単に言うと、VMS でプログラムを実行し、そのプログラムの結果を何らかの形で取得する必要があります。サブプロセスの実行とその結果の取得に関する参照は、私にとっては十分です。

4

3 に答える 3

1

http://hg.vmspython.org/vmspython/の Python ポートを使用していますか?

もしそうなら、このスレッドこのファイル(の形式を実装しているように見えるpopen2)があなたの救いの鍵を握っていると思います。ポートには、VMS の機能などへのインターフェイスを提供するVMS 固有のモジュール (少なくともvms.starletvms.rtl.libvms.dvidef、 ) があるようです。ただし、ドキュメントはむらがあるか、存在しないようです。vms.clidefspawn

于 2011-05-30T14:14:01.693 に答える
0

CGIHTTPServer.py uses os.fork if available, subprocess.Popen if not.

See the source code of the run_cgi method.

Experiment withe the subprocess module to see if/how it works on VMS.

于 2011-05-30T10:49:04.500 に答える
-1

サブプロセスを実行し、その出力を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上にあるので、Pythonまたはサブプロセスモジュールに固有のVMSがわからない。

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

于 2011-05-25T13:07:10.673 に答える