[mod_python] Mac OS X Leopard upset my mod_python test bed.

Simon Kesenci god at skri.org
Sun Nov 25 22:47:12 EST 2007


Not sure how the Sharing Preferences starts apache but I suspect it  
uses something similar to sudo.  At any rate I tried starting it the  
way you described and mod_python still worked as expected.

I then removed /usr/local/bin from my personal account's path and  
logged back in, confirmed that the path lacked /usr/local/bin, used  
sudo -H to start apache again and mod_python still worked.

I then renamed /usr/local/bin to /usr/local/bin2, restarted apache and  
mod_python still worked.

It seems mod_python only needs to find the executable at the time you  
compile mod_python.

Though I have my setup working, the question of where mod_python got  
the path in the error log in my original message remains.  Neither  
interpreter on my computer yields that result via sys.path (although  
some of the items in that list correspond, via symlinks, to locations  
on the path from the interpreter that came with Leopard).

--S.

On Nov 25, 2007, at 18:21, Graham Dumpleton wrote:

> On 26/11/2007, Simon Kesenci <god at skri.org> wrote:
>> I haven't found a discussion of this problem in the archives.
>>
>> Strange stuff.  It started working properly after I removed the /usr/
>> sbin/httpd symlink and copied the compiled version there.  It works
>> without setting PYTHONHOME and without /usr/local/bin in root's path.
>
> More than likely you used 'sudo' to restart Apache and it therefore
> picked up your personal PATH which had /usr/local/bin first. Do a:
>
>  sudo -H apachcetl stop
>  sudo -H apachectl start
>
> and see if you are so lucky. The -H option prevents your personal user
> environment transferring over to Apache startup environment.
>
> Graham
>
>> To answer your question, using the OS-provided installation (whatever
>> the OS) leaves your software to the mercies of the OS's update  
>> schedule.
>>
>> --S.
>>
>> On Nov 25, 2007, at 14:17, Graham Dumpleton wrote:
>>
>>> In 'envvars' file in the same directory as the real httpd you want
>>> to run, add:
>>>
>>> PYTHONHOME=/usr/local
>>> export PYTHONHOME
>>>
>>> Alternatively, you must ensure that the PATH of the user that Apache
>>> is started as has /usr/local/bin in its path before /usr/bin, else  
>>> it
>>> will find the wrong 'python' executable and thus end up looking in  
>>> the
>>> wrong location for the corresponding lib directory.
>>>
>>> Search the mod_python mailing lists for past discussions on this
>>> issue.
>>>
>>> BTW, why do you want to install your own version of Python 2.5, what
>>> is wrong with the Python 2.5 that the operating system ships?
>>>
>>> Graham
>>>
>>> On 26/11/2007, Simon Kesenci <god at skri.org> wrote:
>>>> I recently upgraded my PowerBook (PPC) to Leopard.  Piece by  
>>>> piece I
>>>> started reassembling my web server test bed (httpd 2.2.6, Python
>>>> 2.5.1, mod_python 3.3.1), which worked perfectly on Tiger.  I built
>>>> everything from their sources.
>>>>
>>>> This time around I got everything to work except for mod_python.   
>>>> My
>>>> procedure had the following non-standard edits:
>>>>
>>>> httpd 2.2.6:
>>>>    Changed APR_HAS_SENDFILE to 0 in srclib/apr/include/apr.h
>>>>    After installation I backed up /usr/sbin/httpd and entered
>>>>      ln -s /usr/local/apache2/bin/httpd /usr/sbin/httpd.
>>>>    (This allows you to activate the compiled httpd from the Sharing
>>>> Preferences, which will also have the built-in firewall open and
>>>> close
>>>> port 80 in sync with the server.)
>>>>
>>>> Python 2.5.1:
>>>>    After ./configure --enable-framework I added -DSETPGRP_HAVE_ARG
>>>> to the top-level Makefile (make exits with an error otherwise due
>>>> to a
>>>> lack of arguments to setpgrp()).
>>>>
>>>> Both of the above work as expected, but when I threw mod_python  
>>>> into
>>>> the mix I kept getting the following error:
>>>>
>>>> [Sun Nov 25 09:43:22 2007] [error] make_obcallback: could not  
>>>> import
>>>> mod_python.apache.\n
>>>> ImportError: No module named mod_python.apache
>>>> [Sun Nov 25 09:43:22 2007] [error] make_obcallback: Python path  
>>>> being
>>>> used "['/usr/lib/python25.zip', '/usr/lib/python2.5', '/usr/lib/
>>>> python2.5/plat-darwin', '/usr/lib/python2.5/plat-mac', '/usr/lib/
>>>> python2.5/plat-mac/lib-scriptpackages', '/usr/lib/python2.5/lib-
>>>> tk', '/
>>>> usr/lib/python2.5/lib-dynload', '/Library/Python/2.5/site-
>>>> packages']".
>>>> [Sun Nov 25 09:43:22 2007] [error] get_interpreter: no interpreter
>>>> callback found.
>>>> [Sun Nov 25 09:43:22 2007] [error] [client 10.0.1.2]  
>>>> python_handler:
>>>> Can't get/create interpreter., referer: http://10.0.1.2/~simon/ 
>>>> test/
>>>>
>>>> I used a number of scripts to test the installation, including
>>>> mptest.py from the mod_python doc.  The last script I used to test
>>>> did
>>>> not import mod_python.apache explicitly:
>>>>
>>>> from mod_python import util
>>>>
>>>> def index(req):
>>>>  util.redirect(req, 'www.example.com')
>>>>
>>>> While installing mod_python the output made clear that it took up  
>>>> the
>>>> interpreter in /usr/local/bin rather than the one provided by Apple
>>>> in /usr/bin and installed under /Library/Frameworks/ 
>>>> Python.framework/
>>>> Versions/2.5/lib/python2.5/site-packages/ rather than /Library/
>>>> Python/
>>>> 2.5/site-packages.
>>>>
>>>> I don't know from where it pulled that path.  The interpreter I
>>>> compiled uses the path:
>>>>
>>>> ['', '/Library/Frameworks/Python.framework/Versions/2.5/lib/
>>>> python25.zip', '/Library/Frameworks/Python.framework/Versions/2.5/
>>>> lib/
>>>> python2.5', '/Library/Frameworks/Python.framework/Versions/2.5/lib/
>>>> python2.5/plat-darwin', '/Library/Frameworks/Python.framework/
>>>> Versions/
>>>> 2.5/lib/python2.5/plat-mac', '/Library/Frameworks/Python.framework/
>>>> Versions/2.5/lib/python2.5/plat-mac/lib-scriptpackages', '/Library/
>>>> Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk', '/
>>>> Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-
>>>> dynload', '/Library/Frameworks/Python.framework/Versions/2.5/lib/
>>>> python2.5/site-packages']
>>>>
>>>> The interpreter provided by Apple uses:
>>>>
>>>> ['', '/System/Library/Frameworks/Python.framework/Versions/2.5/lib/
>>>> python25.zip', '/System/Library/Frameworks/Python.framework/ 
>>>> Versions/
>>>> 2.5/lib/python2.5', '/System/Library/Frameworks/Python.framework/
>>>> Versions/2.5/lib/python2.5/plat-darwin', '/System/Library/ 
>>>> Frameworks/
>>>> Python.framework/Versions/2.5/lib/python2.5/plat-mac', '/System/
>>>> Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ 
>>>> plat-
>>>> mac/lib-scriptpackages', '/System/Library/Frameworks/
>>>> Python.framework/
>>>> Versions/2.5/Extras/lib/python', '/System/Library/Frameworks/
>>>> Python.framework/Versions/2.5/lib/python2.5/lib-tk', '/System/
>>>> Library/
>>>> Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-
>>>> dynload', '/
>>>> Library/Python/2.5/site-packages', '/System/Library/Frameworks/
>>>> Python.framework/Versions/2.5/Extras/lib/python/PyObjC']
>>>>
>>>> This morning I logged on to my Linux web server and installed all
>>>> these packages from source without any problems.
>>>>
>>>> --S.
>>>>
>>>> _______________________________________________
>>>> Mod_python mailing list
>>>> Mod_python at modpython.org
>>>> http://mailman.modpython.org/mailman/listinfo/mod_python
>>>>
>>
>> _______________________________________________
>> Mod_python mailing list
>> Mod_python at modpython.org
>> http://mailman.modpython.org/mailman/listinfo/mod_python
>>



More information about the Mod_python mailing list