[ http://issues.apache.org/jira/browse/MODPYTHON-158?page=comments#action_12373816 ]
Graham Dumpleton commented on MODPYTHON-158: -------------------------------------------- I have checked into subversion some new code to support a better troubleshooting guide. The checks that the code does is as follows: 1. On initialisation of mod_python, will compare the version string from the version of Python that mod_python was compiled against, with that which was found at runtime. If they differ, it will log error messages like: [Mon Apr 10 16:06:22 2006] [error] python_init: Python version mismatch, expected '2.3.4', found '2.3'. [Mon Apr 10 16:06:22 2006] [error] python_init: Python executable found '/usr/bin/python'. [Mon Apr 10 16:06:22 2006] [error] python_init: Python path being used '/Users/grahamd/lib/python:/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python23.zip:/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/:/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-darwin:/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-mac:/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-mac/lib-scriptpackages:/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib-tk:/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib-dynload'. [Mon Apr 10 16:06:22 2006] [notice] mod_python: Creating 8 session mutexes based on 6 max processes and 25 max threads. [Mon Apr 10 16:06:22 2006] [notice] mod_python: using mutex_directory /tmp [Mon Apr 10 16:06:22 2006] [notice] Apache/2.0.55 (Unix) mod_python/3.3.0-dev-20060410 Python/2.3 configured -- resuming normal operations 2. When it goes to import "mod_python.apache" when a request is first received, if it cannot be found, it will dump out Python path that was used in the search: [Mon Apr 10 16:10:09 2006] [error] make_obcallback: could not import mod_python.apache.\n ImportError: No module named mod_python.apache [Mon Apr 10 16:10:09 2006] [error] make_obcallback: Python path being used "['/Users/grahamd/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python23.zip', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/PIL', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/PyObjC', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/ZopePageTemplates', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/py2app', '/usr/local/src/reportlab_1_20', '/usr/local/src/trml2pdf', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/wx-2.6-mac-ansi']". [Mon Apr 10 16:10:09 2006] [error] get_interpreter: no interpreter callback found. [Mon Apr 10 16:10:09 2006] [error] [client 127.0.0.1] python_handler: Can't get/create interpreter. A similar error error is logged where "mod_python.apache" can be imported but an error occurred when doing so. This can happen when Apache module is 3.2+ and Python module code files are 2.7.X. [Mon Apr 10 16:13:15 2006] [error] make_obcallback: could not import mod_python.apache.\n Traceback (most recent call last): File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/mod_python/apache.py", line 616, in ? make_table = _apache.make_table AttributeError: 'module' object has no attribute 'make_table' [Mon Apr 10 16:13:15 2006] [error] make_obcallback: Python path being used "['/Users/grahamd/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python23.zip', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/PIL', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/PyObjC', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/ZopePageTemplates', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/py2app', '/usr/local/src/reportlab_1_20', '/usr/local/src/trml2pdf', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/wx-2.6-mac-ansi']". [Mon Apr 10 16:13:15 2006] [error] get_interpreter: no interpreter callback found. [Mon Apr 10 16:13:15 2006] [error] [client 127.0.0.1] python_handler: Can't get/create interpreter. 3. If it was able to import "mod_python.apache" but a failure occurred when calling "apache.init()", it will compare the version of the Apache mod_python module load against the version of mod_python Python code files found. If the version disagrees it will complain. This can occur where Apache module is 3.2+ but Python code files found are 3.1.X. [Mon Apr 10 16:18:24 2006] [error] make_obcallback: could not call init.\n TypeError: init() takes no arguments (2 given) [Mon Apr 10 16:18:24 2006] [error] make_obcallback: mod_python version mismatch, expected '3.3.0-dev-20060410', found '<unknown>'. [Mon Apr 10 16:18:24 2006] [error] get_interpreter: no interpreter callback found. [Mon Apr 10 16:18:24 2006] [error] [client 127.0.0.1] python_handler: Can't get/create interpreter. Unfortunately though, and I onlly just realised, the version string in mod_python/__init__.py file was only added in 3.2. :-( All the same, all this extra information should hopefully be enough for people to see there is a misconfiguration problem and work out what is missing or wrongly installed. I'll possibly tweak this a bit more. Suggestions of other stuff to output and when, most welcome. For example, maybe should output __file__ from "mod_python" module so know where module is being picked up from. > Improve Installation / Troubleshooting section in documentation > --------------------------------------------------------------- > > Key: MODPYTHON-158 > URL: http://issues.apache.org/jira/browse/MODPYTHON-158 > Project: mod_python > Type: Improvement > Components: documentation > Versions: 3.3 > Environment: All > Reporter: Jim Gallacher > Priority: Minor > > Some of the more commonly asked questions asked on the mailing list relate to > mod_python configuration issues that are not currently covered in the > documentation. > Apache can't load mod_python.so > --------------------------------------------- > This more common problem on Windows, but can occur on other platforms. A > typical apache error message looks like this: > Syntax error on line 173 of C:/Program Files/Apache > Group/Apache2/conf/httpd.conf: > Cannot load C:/Program Files/Apache > Group/Apache2/modules/mod_python.so into server: The > specified module could not be found. > On Windows this may indicate a problem with missing D > Nicolas offered the following as an explanation on Windows: > """ > One of the possible cause of your problem is that Apache does find > mod_python.so but not one of the DLL it relies on. Unfortunately the error > reporting in this case is quite scarce and misguiding. > The candidates missing DLLs are python24.dll and the Microsoft Runtime DLLS > (normally msvcr71.dll and msvcp71.dll). > Make sure that your Python directory and the runtime DLLs can be found on > your PATH. The runtime DLLs are normaly copied in your Python directory, so > putting the Python directory on your PATH variable should do the trick. > Also, make sure that the user which is running Apache has its PATH variable > properly set. The best way to do this is to define it at the system-wide > level, but logging it under the user and defining the variable at the user > level is also possible. > """ > Apache can't load mod_python.so - undefined symbol > ----------------------------------------------------------------------- > This may look similar to the first example, but indicates a deeper problem. > Typical error message: > httpd: Syntax error on line 231 of /usr/local/apache2/conf/httpd.conf: Cannot > load /usr/local/apache2/modules/mod_python.so into server: > /usr/local/apache2/modules/mod_python.so: undefined symbol: > apr_sockaddr_port_get > This error could indicate an actual bug in mod_python, or a mismatch between > the Apache version used to compile mod_python versus the one being used to > run it. I'm not sure there is an easy answer, but we should offer some > initial troubleshooting suggestions. > make_obcallback: could not import mod_python.apache > -------------------------------------------------------------------------- > This one seems to occur on all platforms with similar frequency, and is > usually related to having python multiple versions on the same system. > Typical error message: > [Sun Apr 09 14:03:46 2006] [error] make_obcallback: could not import > mod_python.apache.\n > [Sun Apr 09 14:03:46 2006] [error] python_handler: no interpreter > callback found. > [Sun Apr 09 14:03:46 2006] [error] [client 192.168.2.100] > python_handler: Can't get/create interpreter., referer: > http://localhost/mptest.py > The solution is to adjust that PATH apache uses so it finds the correct > python version. This will be platform specific. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira