如何在alwaysdata.net中修改WSGI应用的pythonpath
我用Flask创建了一个小的Python网页应用,想把它放到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 个回答
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脚本文件所在的目录。