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

Graham Dumpleton graham.dumpleton at gmail.com
Sun Nov 25 22:50:44 EST 2007


If you run a mod_python test handler and display back sys.path to your
browser, what does it show?

Graham

On 26/11/2007, Simon Kesenci <god at skri.org> wrote:
> 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