запуск Apache + бутылка + Python
Я пытаюсь бежать Bottle.py с Apache и mod_wsgi.
Я запускаю его в windows, используя xampp. в Python версии 2.7
моя конфигурация Apache в httpd:
<VirtualHost *>
ServerName example.com
WSGIScriptAlias / C:xampphtdocsGetXPathsProjectapp.wsgi
<Directory C:xampphtdocsGetXPathsProject>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Мои приложения.код wsgi:
import os
os.chdir(os.path.dirname(__file__))
import bottle
application = bottle.default_app()
мой hello.py:
from bottle import route
@route('/hello')
def hello():
return "Hello World!"
когда я иду localhost/hello
Я получаю ошибку 404.
У меня нет других ошибок в файле журнала Apache, вероятно, отсутствует что-то основное.
4 ответов
или комментарии Дуана были хорошей отправной точкой для меня, чтобы отделить приложение.wsgi и файл приложения python. Но они были немного загадочны, чтобы я мог понять. После возни в течение нескольких часов, вот что сработало для меня:
[кстати, я работаю над OSX. Пожалуйста отрегулируйте пути, потребителя, группу согласно вашему operating система]
/ библиотека / веб-сервер / документы / hello_app / app.тут WSGI:
import sys
sys.path.insert(0, "/Library/WebServer/Documents/hello_app")
import bottle
import hello
application = bottle.default_app()
/Library/WebServer/Documents/hello_app/hello.py:
from bottle import route
@route('/hello')
def hello():
return "Hello World!"
/ etc/apache2/extra / httpd-vhosts.conf:
<VirtualHost *:80>
ServerName xyz.com
WSGIDaemonProcess hello_app user=_www group=_www processes=1 threads=5
WSGIScriptAlias /v1 /Library/WebServer/Documents/hello_app/app.wsgi
<Directory /Library/WebServer/Documents/hello_app>
WSGIProcessGroup hello_app
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
не забудьте перезагрузить сервер apache.
Я не вижу вашего hello.py ссылки везде.
вы должны просто поместить содержимое hello.py (the route
) в приложение.тут WSGI.
Я добавляю свой вывод для людей, у которых будет такая же проблема, как и у меня: например, преклонить колени перед Зодом и Роном.Ротман, мне пришлось написать свой код в файле WSGI, так как python запускает код оттуда, но если вы хотите получить свои собственные файлы py, вы должны импортировать их из файлов WSGI следующим образом:
from hello import application
"привет" - это имя файла python, а "приложение" - это то, что вы должны написать в файле py, а не в wsgi:
application = bottle.default_app()
также было перезапуск apache каждый раз, когда я делал изменения(и я не знал, что - вот почему это сделало меня сумасшедшим). tnx для парней, которые мне помогли. GooLuck.