webapp2 unter Apache (= ohne Google App Engine)
Ich versuche, webapp2 unter Python mit Apache und mod_wsgi auszuführen - speziell: Wampserver für Windows 7 mit Apache 2.2.22. Bisher bin ich kläglich gescheitert. :-(
Ich habe das folgende Beispiel aushttps://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)
Wenn ich diese Datei speichere alsc:wamp\www\Python\hello.py
, und navigieren Sie zulocalhost/Python/hello.py
Ich bekomme:
Not Found
The requested URL /python/hello.py was not found on this server.
Lassen Sie mich jedoch feststellen, dass mod_wsgi für Python in Apache gut zu laufen scheint. den folgenden Code
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]
befindet sich beic:\wamp\www\Python\test.py
. Wenn ich gehelocalhost/Python/test.py
sagt der BrowserHello from Python!
wie ich es erwarten würde.
Bisher habe ich nur herausgefunden, wie man den Standardnamen des def (= "application") durch Setzen der Zeile in "something_else" ändert
WSGICallableObject something_else
in.htaccess
.
Aber wie kann ich Apache dazu bringen, die Variable zu akzeptieren?app
als aufrufbares Objekt? (Bisher habe ich Python hauptsächlich zum Programmieren außerhalb des Webs verwendet, daher hoffe ich, dass dies keine blöde Frage ist.)
Jede Hilfe wird geschätzt.
Aktualisieren:
Graham fragte mich nach der mod_wsgi-Konfiguration, die ich in Apache-Konfigurationsdateien verwende, und wo ich sie hinzufüge. Ich fügte hinzu
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>
zuhttpd.conf
direkt am Ende aller "LoadModule" -Zeilen.
Einige zusätzliche Informationen zu meiner Konfiguration: Ich verwende mod_wsgi-win32-ap22py27-3.3.so. (Natürlich habe ich es in umbenanntmod_wsgi.so
und legte es inc:\wamp\bin\apache\apache2.2.22\modules
.) Meine Python-Befehlszeile sagt dies über die Version:Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win 32
. Der von mir verwendete Wamp-Server ist 32-Bit. Mein Betriebssystem ist Windows 7 Ultimate 64bit SP1.
Hoffe das hilft bei der Diagnose ...