webapp2 под Apache (= без Google App Engine)
Я пытаюсь запустить webapp2 под Python с Apache и mod_wsgi, а именно: Wampserver для Windows 7 с 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.
Однако позвольте мне заявить, что mod_wsgi для Python в Apache работает нормально; следующий код
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 (= & quot; application & quot;) на & quot ;thing_else & quot; поставив линию
WSGICallableObject something_else
в.htaccess
.
Но как я могу заставить Apache принять переменнуюapp
как вызываемый объект? (До сих пор я использовал Python в основном для программирования вне Интернета, поэтому я надеюсь, что это не глупый вопрос.)
Любая помощь приветствуется.
Update:
Грэм спросил меня о конфигурации mod_wsgi, которую я использую в файлах конфигурации Apache, и где я ее добавляю. я добавил
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.
Надеюсь, это поможет с диагнозом ...