在 Windows/Apache 上设置 Python?
-
19-08-2019 - |
题
我想要一个简单的 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将做工精细,很容易得到建立在一个开发环境中,你不关心它的性能的垃圾。)