我使用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文件位于同一文件夹中。
谢谢!
答案 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脚本文件所在的目录。