4

我使用 Flask 创建了一个小型 Python Web 应用程序,我想将它托管在 alwaysdata.net 中。我已经在我的子域中安装了 mod_wsgi,但是当我尝试导入我的应用程序的主模块时它失败了,因为找不到它。所有文件都在 /www 文件夹中。

我应该把我的文件放在别的地方吗?我尝试在我的 .wsgi 文件中包含当前工作目录,但它仍然不起作用。

作为参考,我的 .wsgi 看起来像这样:

import os
import sys
sys.path.append(os.getcwd())
from ngl import app as application

我的应用程序名为 ngl.py,它与 .wsgi 文件位于同一文件夹中。

谢谢!

4

1 回答 1

12

mod_wsgi 下的当前工作目录不会是 WSGI 脚本所在的位置,因此您不应该使用 os.getcwd()。看:

http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Application_Working_Directory

做你想做的事,使用:

sys.path.append(os.path.dirname(__file__))

这是通过获取 __file__ 变量中记录的 WSGI 脚本文件名称的目录路径组件来计算 WSGI 脚本文件所在的目录。

于 2011-06-29T23:44:20.583 回答