|
Graham Dumpleton
grahamd at dscpl.com.au
Tue Mar 22 19:49:19 EST 2005
Graham Dumpleton wrote ..
> Note how it calls PyErr_Print() to dump out the actual Python error which
> caused the import to fail. This isn't displaying in the log though because
> it is logging through the Apache logging API.
s/it is logging/it is not logging/ :-(
> Anyway, try and find the error messages which PyErr_Print() is generating.
>
> I'll have some code changes you can make to mod_python.c soon as well
> to help track down whether the search path used by Python is correct.
Also try the following.
Manually edit your site-packages/mod_python/apache.py file and change
where the imports are to read:
import sys
sys.stderr.write("importing mod_python.apache\n")
import traceback
import time
import os
import pdb
import stat
import imp
import types
import _apache
sys.stderr.write("imported _apache\n")
If you can't find where the stderr messages are getting flushed to, use
something like the following instead.
mylog = open("/tmp/mp.log","w")
mylog.write("importing mod_python.apache\n")
import sys
import traceback
import time
import os
import pdb
import stat
import imp
import types
import _apache
mylog.write("imported _apache\n")
mylog.close()
If after doing the latter and restarting Apache, you can not find
any /tmp/mp.log file, it simply means that Python when executing
under Apache isn't even looking in your site-packages directory
where you think it should.
At that point, try setting PYTHONHOME explicitly as mentioned in
FAQ entry I referenced in previous mail.
export PYTHONHOME='/home/httpd/python'
httpd -X 2>error_log
I am not sure what you are mean't to set PYTHONHOME to, so you
might have to play and read documentation about what it does.
I think that it might need to be "/usr/local" for your installation.
Graham
|