我想要一个简单的 Python“hello world”网页脚本在 Windows Vista/Apache 上运行,但遇到了不同的障碍。我用的是WAMP。我已经安装了 mod_python 并且模块显示,但我不太确定我应该做什么,例如http.conf(像 AddHandler mod_python .py 这样的东西要么在访问时将我带到找不到文件,要么出现禁止的错误,要么出现模块未找到的错误 http://localhost/myfolder/index.py)。我可以得到 mod_python.publisher 工作,但我“想要”这个/需要这个吗?

有人可以帮忙吗?

谢谢!

有帮助吗?

解决方案

保持距离 mod_python. 。一种常见的误导性想法是 mod_python 就好像 mod_php, ,但是对于Python。那不是真的。 WSGI 是运行 python Web 应用程序的标准,定义为 公众号 333. 。所以使用 mod_wsgi 反而。

或者,使用一些具有服务器的 Web 框架。 樱桃皮的那个特别好。您将能够独立运行您的应用程序 mod_wsgi.

使用cherrypy的Hello World应用程序的示例:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

application = HelloWorld()
if __name__ == '__main__':
    cherrypy.engine.start()
    cherrypy.engine.block()

很容易吧?直接在 python 上运行此应用程序将启动一个网络服务器。配置 mod_wsgi 它将使其在 apache 内运行。

其他提示

您不需要的mod_python在网络上运行Python代码,你可以在下面的链接使用简单的CGI程序来运行你的Python代码,以说明:的 http://www.imladris.com/Scripts/PythonForWindows.html

这应该给你一些你需要的CGI,使Python的配置选项,以及谷歌搜索应该给你如何在其方案和其他信息等里姆斯

如果你想有一个略微更“友好”界面,或通过请求本身更多的控制权

mod_python中是非常有用的。您可以使用它来创建请求过滤器和其他东西的Apache服务器,并与出版商处理你得到的通过Python处理网页的请求简单的方法。

出版商处理程序的工作原理是映射URL到Python对象/功能。这意味着你可以定义你的Python文件命名为“富”的功能,任何请求的http://本地主机/富会自动调用该函数。这里更多的信息: HTTP:// WWW。 modpython.org/live/current/doc-html/hand-pub-alg-trav.html

对于Apache的配置,使工作上的事情,这样的事情应该为你服务好

<Directory /var/www/html/python/>
  SetHandler mod_python
  PythonHandler mod_python.publisher
  PythonDebug On
</Directory>

如果你的/ var / www / html等/设置为你的Web服务器的根,有一个在Python /目录下的叫做index.py在那里的文件,那么任何请求的 HTTP://本地主机/蟒/富应该调用在index.py把foo()函数,或失败,并在404,如果不存在,则

  

的AddHandler的mod_python的.py

你有没有设置 'PythonHandler'?

现在,考虑对更广泛的部署选项使用WSGI代替天然MOD-蟒接口。无论是通过MOD-python的WSGI支持,或者,也许更好,MOD-WSGI。 (通过如CGI,也的wsgiref将做工精细,很容易得到建立在一个开发环境中,你不关心它的性能的垃圾。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top