Как связать проект 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()
Другие вопросы по тегам