Как связать проект Python с файлом WSGI?
Я хочу связать свой проект Python с wsgi
файл. я использую mod_wsgi
,
Я хотел бы, чтобы мой проект Python был расположен в /var/www/myProject/start.py
,
Я настроил Apache следующим образом:
<VirtualHost *:80>
ServerName www.example.me
ServerAlias example.me
ServerAdmin example@gmail.com
DocumentRoot /usr/local/www/documents
LogLevel warn
Alias /robots.txt /usr/local/www/documents/robots.txt
Alias /favicon.png /usr/local/www/documents/favicon.png
Alias /media/ /usr/local/www/documents/media/
<Directory /usr/local/www/documents>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / /usr/local/www/wsgi-scripts/myApp.wsgi
<Directory /usr/local/www/wsgi-scripts>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Пока это то, что я имею в myApp.wsgi
файл:
import web
urls = (
'/.*', 'hello',
)
class hello:
def GET(self):
return "Hello, world"
application = web.application(urls, globals()).wsgifunc()
Что мне нужно сделать, чтобы связать мой проект, который находится в /var/www/myProject/start.py
быть вызванным myApp.wsgi
?
2 ответа
Замените последний аргумент для WSGIScriptAlias на "/var/www/myProject/start.py".
Измените ссылку в директиве Directory на "/ var / www / myProject". Другими словами, просто установите конфигурацию так, чтобы она указывала на правильное местоположение в первую очередь.
Кажется, у вас есть start.py в другом каталоге, который вы хотите вызвать из wsgi.py.
- В этом случае вам нужно как-то указать wsgi.py, чтобы можно было импортировать модуль из другой папки. В этой теме есть некоторые подробности об этом.
Лучшим способом будет иметь файл wsgi в той же папке, что и start.py, и просто импортировать и загрузить приложение оттуда.. что-то вроде:
import start
start.load_application()