gpt4 book ai didi

python - Apache 下的 webapp2(= 没有 Google App Engine)

转载 作者:太空狗 更新时间:2023-10-30 02:13:04 26 4
gpt4 key购买 nike

我正在尝试使用 Apache 和 mod_wsgi 在 Python 下运行 webapp2 - 特别是:Wampserver for Windows 7 with Apache 2.2.22。到目前为止,我失败得很惨。 :-(

我使用了 https://developers.google.com/appengine/docs/python/gettingstartedpython27/usingwebapp 中的以下示例:

import webapp2

class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World!')

app = webapp2.WSGIApplication([('/', MainPage)],
debug=True)

当我将此文件另存为 c:wamp\www\Python\hello.py 并浏览到 localhost/Python/hello.py 时,我得到:

Not Found
The requested URL /python/hello.py was not found on this server.

但是,让我声明 Apache 中用于 Python 的 mod_wsgi 似乎运行良好;以下代码

def application(environ, start_response):
status = '200 OK'
output = 'Hello from Python!'

response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]

start_response(status, response_headers)
return [output]

位于c:\wamp\www\Python\test.py。当我转到 localhost/Python/test.py 时,浏览器如我所料显示 Hello from Python!

到目前为止,我只发现了如何通过放置以下行将 def (="application") 的默认名称更改为“something_else”

WSGICallableObject something_else

进入 .htaccess

但是我怎样才能让 Apache 接受变量 app 作为可调用对象呢? (到目前为止,我主要将 Python 用于网络之外的编程,所以我希望这不是一个愚蠢的问题。)

感谢任何帮助。

更新:

Graham 询问了我在 Apache 配置文件中使用的 mod_wsgi 配置以及我将其添加到何处。我加了

LoadModule wsgi_module modules/mod_wsgi.so

<Directory "c:/wamp/www/python">
Options +ExecCGI
AddHandler wsgi-script .py
Order allow,deny
Allow from all
</Directory>

httpd.conf 就在所有“LoadModule”行的末尾。

关于我的配置的一些附加信息:我正在使用 mod_wsgi-win32-ap22py27-3.3.so。 (当然,我将它重命名为 mod_wsgi.so 并将其放入 c:\wamp\bin\apache\apache2.2.22\modules。)我的 Python 命令行是这样说的关于版本: Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win
32
。我使用的 wamp 服务器是 32 位的。我的操作系统是 Windows 7 Ultimate 64bit SP1。

希望这有助于诊断...

最佳答案

http://code.google.com/p/modwsgi/wiki/InstallationOnWindows 安装 mod_wsgi并正确配置您的 httpd.conf。

我假设您已经添加了这两行:

LoadModule wsgi_module modules/mod_wsgi.so
WSGICallableObject app

http://pypi.python.org/pypi/setuptools 安装 py-setuptools然后为你的 python 安装模块

easy_install WebOb
easy_install Paste
easy_install webapp2

创建虚拟主机

<VirtualHost *>
ServerAdmin admin@mydomain.com
DocumentRoot "/vhost/domains/mydomain/htdocs"
ServerName a.mydomain.net
WSGIScriptAlias / "/vhost/domains/mydomain/wsgi/main.py"
Alias /static/ "/vhost/domains/mydomain/htdocs/static/"
</VirtualHost>

文件:main.py

import webapp2

class Hello(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
self.response.out.write('hello world!')

application = webapp2.WSGIApplication([
('/', Hello)
], debug=True)

关于python - Apache 下的 webapp2(= 没有 Google App Engine),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11471392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com