Как связать проект Python с файлом WSGI? - PullRequest
1 голос
/ 05 июня 2011

Я хочу связать свой проект 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 ]

1 голос
/ 06 июня 2011

Заменить последний аргумент для WSGIScriptAlias ​​на '/var/www/myProject/start.py'.

Изменить ссылку в директиве Directory на' / var / www / myProject '.Другими словами, просто установите конфигурацию так, чтобы она указывала на правильное местоположение.

1 голос
/ 05 июня 2011

Похоже, у вас есть файл start.py в другом каталоге, который вы хотите вызвать из wsgi.py.

  • В этом случае вам нужно как-то указать wsgi.py, чтобы можно было импортировать модуль из другой папки. В этой теме есть некоторые подробности об этом.

Лучшим способом будет иметь файл wsgi в той же папке, что и start.py, и просто импортировать и загрузить приложение оттуда .. что-то вроде:

import start
start.load_application()
...