如何将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 个回答
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'。换句话说,就是一开始就把配置设置成指向正确的位置。