wasm-demo/demo/ermis-f/python_m/cur/0620

80 lines
2.9 KiB
Plaintext

From: duncan at rcp.co.uk (Duncan Booth)
Date: 14 Apr 1999 08:43:26 GMT
Subject: stupid Win-CGI getting started question
References: <7f0f0h$pfb$1@nnrp1.dejanews.com>
Message-ID: <8DA86302Bduncanrcpcouk@news.rmplc.co.uk>
Content-Length: 2672
X-UID: 620
seitz at mail.medscape.com wrote in <7f0f0h$pfb$1 at nnrp1.dejanews.com>:
>Installed the basic Python stuff. I can run the interpreter. But not clear on
>getting it configured properly to talk CGI with my WinNT Netscape Enterprise
>server. I set a CGI folder path properly, but I get a nasty error message.
>But it's not a file-not-found, so I know it's finding the .py file. So I'm
>guessing it's not finding the executable.
>
>How should that first #! be changed for Windows users? Could that be it?
>
>Could the fact that all my Python stuff is under
>d:\program files\python\
>be part of the problem (the long folder name with a space in it)?
I tried all sorts of configuration changes to get it to run .py files directly,
and eventually gave it up as a bad job (mostly because I didn't want to risk
breaking the server).
The way I get CGI scripts to run with Netscape Enterprise server on NT is to
put them in .cmd files instead of .py files. For example:
---------test.cmd----------------
@c:\Progra~1\Python\python -x "%~f0" %* & goto :EOF
import os
print "Content-type: text/html"
print
print "<HTML><HEAD><TITLE>Test</TITLE></HEAD>"
print "<body>Hello world from python.<p>"
for k in os.environ.keys():
print k, os.environ[k], "<br>"
print "</body>"
---------end of test.cmd---------
You would need to change the path to reflect the location of your copy of
Python, either use the 8.3 filename as above, or put the filename in quotes:
@"c:\Program Files\Python\python" -x "%~f0" %* & goto :EOF
works.
To get Bobo (now ZPublisher) working, I use a wrapper .cmd file like this:
--------------form.cmd----------------
@c:\Progra~1\Python\pythonw -x "%~f0" %* & goto :EOF
import traceback, sys
try:
sys.path[0:0] = ["h:\\staff\\tvoc\\python"]
import cgi_module_publisher
cgi_module_publisher.publish_module("form")
except:
print 'Content-type: text/plain\n\n'
print 'An error occured in attempting to set up the environment for
this application.'
-------------end of form.cmd-------------------
sys.path needs to be set to include the directory with the python code you want
to publish, but the python code need not be visible to the web users.
I then set up a redirect in the Netscape server configuration so that an
ordinary URL with an html extension gets redirected to form.cmd and the end
user doesn't even need to know that any CGI is involved.
--
Duncan Booth duncan at dales.rmplc.co.uk
int month(char *p){return(124864/((p[0]+p[1]-p[2]&0x1f)+1)%12)["\5\x8\3"
"\6\7\xb\1\x9\xa\2\0\4"];} // Who said my code was obscure?
http://dales.rmplc.co.uk/Duncan