如何在alwaysdata.net中修改WSGI应用程序的pythonpath

时间:2011-06-29 18:08:00

标签: python hosting mod-wsgi wsgi flask

我使用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文件位于同一文件夹中。

谢谢!

1 个答案:

答案 0 :(得分: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脚本文件所在的目录。