如何将Python项目链接到WSGI文件?

1 投票
2 回答
3228 浏览
提问于 2025-04-16 18:58

我想把我的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

看起来你有一个叫做 start.py 的文件,它在一个不同的文件夹里,而你想从 wsgi.py 中调用它。

  • 在这种情况下,你需要告诉 wsgi.py,怎么从另一个文件夹导入一个模块。这个讨论帖里有一些相关的细节。

更好的方法是把 wsgi 文件放在和 start.py 同一个文件夹里,然后直接从那里导入和加载应用程序。可以这样做:

import start
start.load_application()
1

把 WSGIScriptAlias 的最后一个参数换成 '/var/www/myProject/start.py'。

在 Directory 指令中,把路径改成 '/var/www/myProject'。换句话说,就是一开始就把配置设置成指向正确的位置。

撰写回答