[mod_python] mod_python: How-to Resolve Python Version conflicts

Graham Dumpleton graham.dumpleton at gmail.com
Mon Apr 20 03:02:24 EDT 2009


2009/4/18 Eeswar Kameswara Rao <eeswar at pbsystems.com>:
> Thank you Graham for the immediate  response.
>
> Sorry I could not reply immediately.
> I have actually figured the solution and fell asleep (work in a different time zone).
>
> I missed to mention the following facts: -
> 1. I have two different users for each of the Python versions
> 2. One user runs on Python 2.5.1 and another user on Python 2.3.5

I still don't understand where Python 2.3.5 came from as a complete
Python 2.3.5 installation is not supplied with MacOS X 10.5. Did you
install your own Python 2.3.5 from source code? Did you install that
under /System/Library?

Anyway, as long as you have got it work and are happy.

Graham

> 3. I run Mac OSX 10.5.6 with latest updates
> 4. For each of the users the default python PATHS are setup so that each gets his/her own version of python at command prompt
>
>
> Changes I made to make Python 2.5 and 2.3 co-exist without interfering with each other
> ------------------------------------------------------------------------------------------------------------
> 1. I modified the symlink /System/Library/Frameworks/Python/Versions/Current  point to 2.5
> 2. Then redid the following
> ./configure --with-ptyhon=/usr/bin/python2.5
> Modified the paths in Makefile to point to Python2.5
> Added '-arch i386' options wherever required in the Makefile
> make && sudo make install
> www:src Tool$ otool -L mod_python.so
>> mod_python.so:
>>        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.3)
>>        /System/Library/Frameworks/Python.framework/Versions/2.5/Python (compatibility version 2.5.0, current version 2.5.1)
>>        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
>> www:src Tool$ file mod_python.so
>> mod_python.so: Mach-O bundle i386
>
> I have reset the symlink Current to 2.3.
>
> Note
> -------
> 1. Looks like the symlink '/System/Library/Frameworks/Python/Versions/Current ' plays a very important role up to creating the mod_python.so.
> 2. Now I am able to run the python web-apps from any login irrespective of which python version access is provided to
>
> INFERENCES (please validate these)
> ---------------------------------------------------------
> 1. Web-based python does not include command-prompt based python
> 2. All python web-apps refer only to mod_python
> 3. Command prompt Python refers to the PATH variable in the Shell's ENV variables whereas mod_python refers to its own internal path settings for python version (which probably got create during the 'Configure and Make')
> 3. Mod-python uses the python settings provided during the "./configure --with-python=" and the settings provided in the python paths of Makefile
> 4. Specifying Architecture is an important component for creating a workable mod_python
>
>
> Regards,
> Eeswar
> ________________________________________
> From: Graham Dumpleton [graham.dumpleton at gmail.com]
> Sent: Saturday, April 18, 2009 3:45 AM
> To: Eeswar Kameswara Rao
> Cc: mod_python at modpython.org
> Subject: Re: [mod_python] mod_python: How-to Resolve Python Version conflicts
>
> You may well have screwed up your operating system Python
> installation. You should never install separate Python versions under
> /System/Library as that is reserved for operating system supplied
> packages. You should also never change /usr/bin/python to put at some
> other version because if operating system functions are dependent on
> the version that was there previously, you will cause those bits of
> the operating system to fail.
>
> Since your operating system is now in such an unknown state of
> functioning, there isn't probably much point trying to pursue why you
> have problems.
>
> Next time install the alternate Python under /Library or better still
> /usr/local and don't stuff with /usr/bin/python. Then as per
> instructions for mod_python, use the --with-python option to configure
> script to say which version of Python you want to use rather than
> trying to hand edit things as you likely aren't changing everything
> that would need to be different when different Python version used.
>
> Graham
>
> 2009/4/18 Eeswar Kameswara Rao <eeswar at pbsystems.com>:
>> Hello All,
>>
>> I am new to this list. I am having trouble to access the archives.
>>
>> Here is my problem. PLEASE HELP.
>>
>> ISSUE
>> ---------
>> 1. After I do "make && sudo make install" I get a mod_python.so in the src and .libs directories
>> 2. When I do a 'otool -L ./mod_python.so'  it reports
>> www:src Tool$ otool -L mod_python.so
>> mod_python.so:
>>        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.3)
>>        /System/Library/Frameworks/Python.framework/Versions/2.3/Python (compatibility version 2.3.0, current version 2.3.5)
>>        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
>>
>> SCENARIO
>> ---------------
>> 1. H/W - Intel Core2Duo MacBook laptop
>> 2. I have two versions of Python i.e. 2.3 and 2.5.1
>> 3. Python 2.3 path is /System/Library/Frameworks/Python.framework/Versions/2.3/
>> 4. Python2.3 executable is in /usr/local/sbin
>> 5. Python2.5 path is /System/Library/Frameworks/Python.framework/Versions/2.5/
>> 6. Python2.5 Executable is in /usr/bin
>> 7. Apache version 2.0 is enabled in 32-bit mode (reconfigured the apache plist for 32-bit)
>> 8. Ran .sudo ./configure --with-python=/usr/bin/python2.5
>> 9. Added to Makefile with library path pointing to Python2.5 in LDFLAGS
>> 10. Added to Makefile '-arch i386' to LDFLAGS, CFLAGS and under mod_python.so
>> 11. After doing a "make && sudo make install" I get a mod_python.so built with Python2.3 framework (????)
>>
>> I want this mod_python to be Python2.5 compliant ONLY.
>>
>> So all my Python web apps crash. Error_logs report version conflicts.
>>
>> Below is the listing from "make && sudo make install'
>>
>> www:mod_python-3.3.1 Tool$ make && sudo make install
>>
>> Compiling for DSO.
>>
>> /usr/sbin/apxs -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -c -Wc,"-arch i386" mod_python.c _apachemodule.c requestobject.c tableobject.c util.c serverobject.c connobject.c filterobject.c hlist.c hlistobject.c finfoobject.c -Wl,-framework,Python  -u _PyMac_Error -framework Python   -Wl,-F/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5 -arch i386   -lm  -framework  Python    -ldl
>> /usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch i386 -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5  -c -o mod_python.lo mod_python.c && touch mod_python.slo
>> mod_python.c: In function 'python_init':
>> mod_python.c:826: warning: initialization from incompatible pointer type
>> /usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch i386 -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5  -c -o _apachemodule.lo _apachemodule.c && touch _apachemodule.slo
>> /usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch i386 -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5  -c -o requestobject.lo requestobject.c && touch requestobject.slo
>> /usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch i386 -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5  -c -o tableobject.lo tableobject.c && touch tableobject.slo
>> tableobject.c:329: warning: initialization from incompatible pointer type
>> tableobject.c:1092: warning: initialization from incompatible pointer type
>> /usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch i386 -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5  -c -o util.lo util.c && touch util.slo
>> /usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch i386 -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5  -c -o serverobject.lo serverobject.c && touch serverobject.slo
>> serverobject.c:387: warning: initialization from incompatible pointer type
>> /usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch i386 -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5  -c -o connobject.lo connobject.c && touch connobject.slo
>> /usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch i386 -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5  -c -o filterobject.lo filterobject.c && touch filterobject.slo
>> /usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch i386 -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5  -c -o hlist.lo hlist.c && touch hlist.slo
>> /usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch i386 -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5  -c -o hlistobject.lo hlistobject.c && touch hlistobject.slo
>> /usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch i386 -I/Users/Tool/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5  -c -o finfoobject.lo finfoobject.c && touch finfoobject.slo
>> finfoobject.c:278: warning: 'intargfunc' is deprecated
>> finfoobject.c:278: warning: initialization from incompatible pointer type
>> /usr/share/apr-1/build-1/libtool --silent --mode=link gcc -o mod_python.la  -rpath /usr/libexec/apache2 -module -avoid-version    finfoobject.lo hlistobject.lo hlist.lo filterobject.lo connobject.lo serverobject.lo util.lo tableobject.lo requestobject.lo _apachemodule.lo mod_python.lo -Wl,-framework,Python -u _PyMac_Error -framework Python -Wl,-F/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5 -arch i386 -lm -framework Python -ldl
>> make[2]: `psp_parser.c' is up to date.
>> /usr/bin/python2.5 setup.py build
>> running build
>> running build_py
>> running build_ext
>>
>> Now su and make install
>>  (or, if you only want to perform a partial install,
>>   you can use make install_dso and make install_py_lib)
>>
>> Password:
>> make[3]: `psp_parser.c' is up to date.
>> /usr/bin/python2.5 setup.py build
>> running build
>> running build_py
>> running build_ext
>>
>> Now su and make install
>>  (or, if you only want to perform a partial install,
>>   you can use make install_dso and make install_py_lib)
>>
>>
>> Performing DSO installation.
>>
>> /usr/bin/install -c -d /usr/libexec/apache2
>> /usr/bin/install -c src/mod_python.so /usr/libexec/apache2
>>
>> Now don't forget to edit your main config and add
>>    LoadModule python_module /usr/libexec/apache2/mod_python.so
>> and if your configuration uses ClearModuleList, then also
>>    AddModule mod_python.c
>>
>> cd dist && make install_py_lib
>> make[3]: `psp_parser.c' is up to date.
>> if test -z "" ; then \
>>                /usr/bin/python2.5 setup.py install --optimize 2 --force ; \
>>        else \
>>                /usr/bin/python2.5 setup.py install --optimize 2 --force --root  ; \
>>        fi
>> running install
>> running build
>> running build_py
>> running build_ext
>> running install_lib
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/__init__.py -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/_psp.so -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/apache.py -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/cache.py -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/cgihandler.py -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/Cookie.py -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/importer.py -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/psp.py -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/publisher.py -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/python22.py -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/Session.py -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/testhandler.py -> /Library/Python/2.5/site-packages/mod_python
>> copying build/lib.macosx-10.5-i386-2.5/mod_python/util.py -> /Library/Python/2.5/site-packages/mod_python
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/__init__.py to __init__.pyc
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/apache.py to apache.pyc
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/cache.py to cache.pyc
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/cgihandler.py to cgihandler.pyc
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/Cookie.py to Cookie.pyc
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/importer.py to importer.pyc
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/psp.py to psp.pyc
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/publisher.py to publisher.pyc
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/python22.py to python22.pyc
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/Session.py to Session.pyc
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/testhandler.py to testhandler.pyc
>> byte-compiling /Library/Python/2.5/site-packages/mod_python/util.py to util.pyc
>> writing byte-compilation script '/tmp/tmpG6QrK-.py'
>> /System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python -OO /tmp/tmpG6QrK-.py
>> removing /tmp/tmpG6QrK-.py
>> running install_egg_info
>> Removing /Library/Python/2.5/site-packages/mod_python-3.3.1-py2.5.egg-info
>> Writing /Library/Python/2.5/site-packages/mod_python-3.3.1-py2.5.egg-info
>> www:mod_python-3.3.1 Tool$ cd src
>> www:src Tool$ ls
>> Makefile                connobject.lo           hlist.lo                mod_python.slo          serverobject.o
>> Makefile.in             connobject.o            hlist.o                 mod_python.so           serverobject.slo
>> Makefile.txt            connobject.slo          hlist.slo               mod_python.vcproj       tableobject.c
>> Makefile_bak            filterobject.c          hlistobject.c           psp_parser.c            tableobject.lo
>> Makefile_bak_16MAR      filterobject.lo         hlistobject.lo          psp_parser.l            tableobject.o
>> Version.rc              filterobject.o          hlistobject.o           psp_string.c            tableobject.slo
>> _apachemodule.c         filterobject.slo        hlistobject.slo         requestobject.c         util.c
>> _apachemodule.lo        finfoobject.c           include                 requestobject.lo        util.lo
>> _apachemodule.o         finfoobject.lo          mod_python.c            requestobject.o         util.o
>> _apachemodule.slo       finfoobject.o           mod_python.la           requestobject.slo       util.slo
>> _pspmodule.c            finfoobject.slo         mod_python.lo           serverobject.c
>> connobject.c            hlist.c                 mod_python.o            serverobject.lo
>> www:src Tool$ otool -L mod_python.so
>> mod_python.so:
>>        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.3)
>>        /System/Library/Frameworks/Python.framework/Versions/2.3/Python (compatibility version 2.3.0, current version 2.3.5)
>>        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
>> www:src Tool$ file mod_python.so
>> mod_python.so: Mach-O bundle i386
>>
>>
>> PLEASE HELP.
>>
>> Thanks and Regards,
>> Eeswar
>>
>>
>> _______________________________________________
>> 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