在wsgi中导入Python模块时出现500内部服务器错误
我有一个Python脚本,它通过使用PEST wsgi库来异步执行函数。但是,当我尝试导入另一个模块时,结果却是500错误。
我尝试引用它的方式是:
from foo import *
from foo import Foo
这里的foo是一个.py文件,里面有我想要引用的对象。
我试着通过Chrome的检查元素功能来监控调用,但什么也没找到。
我还尝试使用Apache的错误日志进行调试,但也没有任何信息。
如果有任何提示,我将非常感激。
更新:
我尝试了以下方法,但仍然出现相同的500错误:
--使用
import site
和
site.addsitedir("path/to/my/py/files/folder")
--修改Apache2的httpd.conf文件,插入以下内容:
WSGIPythonPath /path/to/my/py/files/folder
--在/etc/apache2/sites-available/myapp.conf中修改应用程序配置文件,插入上述WSGIPythonPath。
4 个回答
1
也许你可以使用这个模式来处理cgi脚本中的错误,并将错误信息显示在html表单上:
import cgi
import cgitb; cgitb.enable() # for troubleshooting
import traceback
# code here
except:
tb = traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)
tb = ''.join(tb)
print '<pre>%s</pre></body></html>' % tb
3
Apache的500错误只是告诉你,Python脚本出现了错误。我猜在Apache的环境中,Python找不到那个模块。你可以试试写一个简单的脚本,打印出sys.path
,看看里面有没有你期待的目录。
2
在应用程序的配置文件中,先加上
WSGIPythonPath /path/to/my/py/files/folder
这个内容,然后再添加其他的别名或目录,这样做真的能解决问题。