Graham Dumpleton
graham.dumpleton at gmail.com
Sun Mar 23 18:48:01 EDT 2008
Please try source from subversion for mod_python instead. Should work without you needing to rename existing framework directory. See: http://www.modpython.org/pipermail/mod_python/2008-March/024954.html You will still need --with-apxs and --with-python commands. Graham On 24/03/2008, Jeffrey A. Zelt <jeffreyz at broadpark.no> wrote: > I had trouble building mod-pyhon 3.3.1 on Mac OS X 10.5.2 (Leopard), > so I thought I would share the solution here. > > I have installed Python 2.5.2 into /usr/local (to use instead of > Leopard's default 2.5.1 distribution). It is not that v2.5.2 provides > so many improvements over v2.5.1; rather, Apple has shown in the past > that they do not upgrade their version of Python between major OX X > updates, and I would like to be able to take advantage of all future > improvements in v2.5.x and soon v2.6.x (possibly as early as this > summer). > > I have also installed the Apache 2.2.8 web server (instead of Apples > default Apache server, which I think is also v2.2.8). > > I did not touch/modify Apple's default Python 2.5.1 or Apache 2.2.8 > installations in any way. > > First, I will describe the problem and then I will show the *solution* > that solves this problem. > > > > Problem: > > If you perform a normal mod_python build, the copy of mod_python.so > that is created by the build process has the python module import > paths from Apple's Python 2.5.1 installation *hardwired* into it. I > know this is so because I looked into the mod_python.so file (even > though this is a binary file), and I could see strings that referred > to Apple's Python 2.5.1 installation. > > Note that this occurred even though I specified the mod_python > configure option: > > --with-python=/usr/local/bin/python2.5 > > (which is the Python 2.5.2 installation I installed myself). > > When I tried to connect to my Apache 2.2.8 web server with a request > that was routed to mod_python (such as the /mpinfo testhandler), I > received a generic 500 Server Error page in my web browser and the > Apache error log file contained the following: > > [Sat Mar 15 17:19:48 2008] [error] python_init: Python version > mismatch, expected '2.5.2', found '2.5.1'. > [Sat Mar 15 17:19:48 2008] [error] python_init: Python executable > found '/usr/local/bin/python'. > [Sat Mar 15 17:19:48 2008] [error] python_init: Python path being used > '/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/lib/python2.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'. > [Sat Mar 15 17:19:48 2008] [notice] mod_python: Creating 32 session > mutexes based on 256 max processes and 0 max threads. > [Sat Mar 15 17:19:48 2008] [notice] mod_python: using mutex_directory / > tmp > [Sat Mar 15 17:19:48 2008] [notice] Digest: generating secret for > digest authentication ... > [Sat Mar 15 17:19:48 2008] [notice] Digest: done > [Sat Mar 15 17:19:49 2008] [notice] Apache/2.2.8 (Unix) mod_ssl/2.2.8 > OpenSSL/0.9.7l DAV/2 mod_python/3.3.1 Python/2.5.1 SVN/1.4.6 > configured -- resuming normal operations > > Notice that even though the Apache process found Python 2.5.2 in /usr/ > local/bin (I was careful to set the PATH environment variable > appropriately in my launchctl configuration file for the web server), > the python module import paths all seem to refer to Apple's default > Python 2.5.1 distribution (which does not have the mod_python package > installed, of course). Needless to say, mod_python was not useable. > > > > Solution: > > 1. Before building mod_python, execute: > > $ cd /System/Library/Frameworks > $ sudo mv Python.framework XXX_Python.framework > > 2. After building mod_python, revert this change with: > > $ cd /System/Library/Frameworks > $ sudo mv XXX_Python.framework Python.framework > > In other words, the build process should look something like the > following (the configure options you choose may be different that > those I used): > > $ cd /System/Library/Frameworks > $ sudo mv Python.framework XXX_Python.framework > > $ cd <mod_python distribution directory> > $ ./configure \ > > --with-apxs=/usr/local/apache2/bin/apxs \ > > --with-python=/usr/local/bin/python2.5 \ > > --with-max-locks=32 > $ make > $ sudo make install > > $ cd /System/Library/Frameworks > $ sudo mv XXX_Python.framework Python.framework > > > > Conjecture: > > I am not a C programmer, but I would guess that there is a slight > problem with the build system for mod_python on Leopard that needs to > be fixed. If you supply the configure option: > > --with-python=/usr/local/bin/python2.5 > > the build process should ignore everything to do with Apple's Python > 2.5.1 distribution, but it does not. It seems that the "sudo mv ..." > commands from the recipe above are enough to temporarily hide Apple's > Python 2.5.1 distribution from the mod_python build system so that a > mod_python.so module can be built that is solely dependendent on the > Python 2.5.2 distribution I specified in the configure options. Let's > hope that the mod_python distribution is updated soon so that others > are not bitten by this bug. > > Even if my conjecture is not correct, at least you have a recipe for > successfully installing mod_python under the conditions I outlined > above. > > Jeffrey > > > > _______________________________________________ > Mod_python mailing list > Mod_python at modpython.org > http://mailman.modpython.org/mailman/listinfo/mod_python >
|