代码之家  ›  专栏  ›  技术社区  ›  Philipp Lenssen

在Windows/Apache上设置python?

  •  8
  • Philipp Lenssen  · 技术社区  · 16 年前

    我想得到一个简单的python“hello world”网页脚本,在windows vista/apache上运行,但却碰到了不同的墙。我在用wamp。我已经安装了 mod_python 模块会显示,但我不太确定在http.conf(addhandler mod_python.py之类的东西)中应该做什么,或者把我带到一个找不到的文件中,或者一个被禁止的文件中,或者在访问时模块找不到错误 http://localhost/myfolder/index.py )我可以得到 mod_python.publisher 去工作,但我“想要”这个/需要这个吗?

    有人能帮忙吗?

    谢谢!

    3 回复  |  直到 16 年前
        1
  •  24
  •   nosklo    16 年前

    远离 mod_python . 一个常见的误导性观点是 摩天巨龙 就像 mod_php 但对于python。这不是真的。 Wsgi 是运行python web应用程序的标准,由 PEP 333 . 所以用 mod_wsgi 相反。

    或者,使用一些具有服务器的Web框架。 Cherrypy 是一个特别好的。您可以独立运行应用程序,也可以通过 莫迪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上运行这个应用程序将启动一个webserver。配置 莫迪WSGI 它将使它在Apache中运行。

        2
  •  4
  •   Daniel Bruce    16 年前

    在Web上运行python代码不需要mod_python,您可以使用简单的cgi编程来运行python代码,并使用以下链接中的说明: http://www.imladris.com/Scripts/PythonForWindows.html

    这将为您提供一些使用CGI启用Python所需的配置选项,而Google搜索将为您提供大量有关如何在其中进行编程等的其他信息。

    如果您想要一个更“友好”的界面,或者更多地控制请求本身,那么mod_python非常有用。您可以使用它为Apache服务器创建请求过滤器和其他东西,通过发布服务器处理程序,您可以获得一种通过Python处理网页请求的简单方法。

    发布服务器处理程序通过将URL映射到Python对象/函数来工作。这意味着您可以在python文件中定义一个名为“foo”的函数,以及 http://localhost/foo 会自动调用该函数。更多信息在这里: 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://localhost/python/foo 应该调用index.py中的foo()函数,或者如果404不存在则失败。

        3
  •  0
  •   bobince    16 年前

    addhandler模块python.py

    你设置了“皮顿汉德勒”吗?

    现在,考虑使用wsgi而不是本机mod python接口来获得更广泛的部署选项。或者通过mod python的wsgi支持,或者更好的方法是mod wsgi。(CGI via,例如wsgiref也可以很好地工作,并且很容易建立在一个开发环境中,您不关心它的垃圾性能。)