有谁在看python how to program的吗?一起来学习.

有谁在看python how to program的吗?一起来学习.

在学习python how to program的时候遇到了一下问题,想和同样也在学习的朋友一起来学习.共同进步.
吳榮泰
有问题就发把,也好学习下
呵呵,是啊,有问题就发,不用一定找看那本书的人吧~
当初看到CGI那章时,环境总搭不起来。
我也是,我的运行环境是:windows xp + Python2.5 + Apache2.2.9 就是不知道怎么样配置Apache才能成功.第六章的6.3(电子档为117页)的例子fig06_03.py(从网上下载的程序)如果我用IIS作为web服务提供者(端口为8088,虚拟目录为d:\www),在浏览器上输入:http://localhost:8088/www/cgi-bin/fig06_03.py是可以正确显示结果,我的显示结果是:Tue Sep 02 20:52:59 2008.
但是如果我用Apache作为web服务提供者(端口为80,根目录已经改成d:\www)在浏览器上输入:http://localhost/cgi-bin/fig06_03.py ,则出现错误的提示如下)
************************************************************
Not Found

The requested URL /cgi-bin/fig06_03.py was not found on this server.
************************************************************
查看Apache的错误日志(C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log)如下:
************************************************************
[Tue Sep 02 20:25:24 2008] [notice] Child 1480: Starting thread to listen on port 80.
[Tue Sep 02 20:25:24 2008] [notice] Child 3456: All worker threads have exited.
[Tue Sep 02 20:25:24 2008] [notice] Child 3456: Child process is exiting
[Tue Sep 02 20:40:14 2008] [error] [client 127.0.0.1] File does not exist: D:/www/CFIDE
************************************************************

我的Apache配置(httpd.conf)如下(只写出修改的部分):

************************************************************
DocumentRoot "D:/www"

LoadModule python_module modules/mod_python.so

<Directory "D:/www">
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>

ScriptAlias /cgi-bin/ "D:/www/cgi-bin/"

<Directory "D:/www/cgi-bin">
    AllowOverride None
    Options None
    SetHandler mod_python
    PythonHandler mod_python.publisher
    Order allow,deny
    Allow from all
</Directory>
************************************************************
apache服务正常.
另外我先了一个test.py程序,放在D:\www\cgi-bin.内容如下:
************************************************************
#!C:/Python25/python.exe
# Filename : test.py

def hello():
    return "hello world."

print "Hello world!"
************************************************************
如果我在浏览器上输入http://localhost/cgi-bin/test.py,显示:
************************************************************
Not Found

The requested URL /cgi-bin/fig06_03.py was not found on this server.
************************************************************
如果我在浏览器上输入http://localhost/cgi-bin/test.py/hello,显示则正常:
************************************************************
hello world.
************************************************************
我估计应该是apache的配置问题,但是我找过很多的资料,包括mod_python中文文档(链接地址:http://man.chinaunix.net/develop ... hon/mod_python.html).真是有焦头烂额的感觉.请帮助我.谢谢!

吳榮泰
你现在搭起来了吗?是什么环境?windows or linux ?
吳榮泰
你是以CGI方式运行py,还是mod_python运行?

cgi方式很简单,只要按照CGI规范输出,在apache配置文件里加上.py这个后缀就行了

mod_python请参见我在版里发过一个配置文章
请问,什么是cgi方式,什么是mod_python的方式?

我的apache的配置是:

<Directory "D:/www/cgi-bin">
    AllowOverride None
    Options None
    SetHandler mod_python
    PythonHandler mod_python.publisher
    Order allow,deny
    Allow from all
</Directory>

我觉得我配置一个是mod_python的方式.
什么是cgi方式呢?

吳榮泰
mod_python配置可以看:http://bbs.chinaunix.net/thread-1198737-1-1.html

CGI配置你可以打开你的httpd.conf搜索下cgi-bin目录里面的配置,默认有.cgi你添加个.py
我的配置
<Directory d:/apache/htdocs/timms.ext>
     AddHandler mod_python .prog
    PythonHandler dispatch
    PythonDebug on
</Directory>
浏览器这样访问http://10.60.33.177/timms.ext/fresh3.prog