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 > >> > >
|