[mod_python] Trouble loading mod_python Mac Os X

Graham Dumpleton graham.dumpleton at gmail.com
Wed Jul 30 21:55:13 EDT 2008


If you still haven't sorted this, check out latest source code from:

  https://svn.apache.org/repos/asf/quetzalcoatl/mod_python/trunk

This incorporates all the correct MacOSX fat binary changes.

If that doesn't work then post specific issues you have with that version.

Graham

2008/7/28 Alex Lurthu <alex.lurthu at yahoo.com>:
> Hi All,
>
> I have been trying to add mod_python module to apache2. The first road block
> that i hit was :
>
> httpd: Syntax error on line 116 of /private/etc/apache2/httpd.conf: Cannot
> load /usr/libexec/apache2/mod_python.so into server:
> dlopen(/usr/libexec/apache2/mod_python.so, 10): no suitable image found.
> Did find:\n\t/usr/libexec/apache2/mod_python.so: mach-o, but wrong
> architecture
>
> To solve this i add the following lines to the Makefile under src directory
> :
>
> CPPFLAGS =
> -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5
> -DNDEBUG -DMACOSX -DENABLE_DTRACE
> CFLAGS =  -Wc,'-arch ppc7400' -Wc,'-arch ppc64' -Wc,'-arch i386' -Wc,'-arch
> x86_64'
> LDFLAGS =  -arch ppc7400 -arch ppc64 -arch i386 -arch x86_64
> -Wl,-F/System/Library/Frameworks -framework Python -u _PyMac_Error
> -framework Python
> LDLIBS = -ldl
>
> It got complied with the required format or platform support.
>
> sh-3.2# file /usr/libexec/apache2/mod_python.so
> /usr/libexec/apache2/mod_python.so: Mach-O universal binary with 4
> architectures
> /usr/libexec/apache2/mod_python.so (for architecture ppc):    Mach-O bundle
> ppc
> /usr/libexec/apache2/mod_python.so (for architecture ppc64):    Mach-O
> 64-bit bundle ppc64
> /usr/libexec/apache2/mod_python.so (for architecture i386):    Mach-O bundle
> i386
> /usr/libexec/apache2/mod_python.so (for architecture x86_64):    Mach-O
> 64-bit bundle x86_64
>
> After this step, when i tried LoadModule in the httpd.conf file i got the
> following error.
>
> httpd: Syntax error on line 117 of /private/etc/apache2/httpd.conf: Can't
> locate API module structure `python_module' in file
> /usr/libexec/apache2/mod_python.so: dlsym(0x100216ae0, python_module):
> symbol not found
>
> Stuck at this point. Have a working wsgi module, but still wondering why
> this is loading. Ensured that it got built against the correct apache
> libraries and python libraries.
>
> The following are the versions that i use :
>
> Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17)
> sh-3.2# apachectl -v
> Server version: Apache/2.2.8 (Unix)
> Server built:   Mar  4 2008 21:37:02
>
> Platform : sh-3.2# uname -a
> Darwin sickreturn-lm 9.4.0 Darwin Kernel Version 9.4.0: Mon Jun  9 19:30:53
> PDT 2008; root:xnu-1228.5.20~1/RELEASE_I386 i386
>
> Hardware : Apple Macbook Pro (Intel 32 bit )
>
> Output of otool pasted at the end. Thanks for the help.
>
> --
> Alex
> http://alexlurthu.wordpress.com
> sh-3.2# otool -l /usr/libexec/apache2/mod_python.so
> /usr/libexec/apache2/mod_python.so:
> Load command 0
>       cmd LC_SEGMENT
>   cmdsize 328
>   segname __TEXT
>    vmaddr 0x00000000
>    vmsize 0x00016000
>   fileoff 0
>  filesize 90112
>   maxprot 0x00000007
>  initprot 0x00000005
>    nsects 4
>     flags 0x0
> Section
>   sectname __text
>    segname __TEXT
>       addr 0x00001358
>       size 0x00011f4c
>     offset 4952
>      align 2^2 (4)
>     reloff 0
>     nreloc 0
>      flags 0x80000400
>  reserved1 0
>  reserved2 0
> Section
>   sectname __cstring
>    segname __TEXT
>       addr 0x000132a4
>       size 0x00002caa
>     offset 78500
>      align 2^2 (4)
>     reloff 0
>     nreloc 0
>      flags 0x00000002
>  reserved1 0
>  reserved2 0
> Section
>   sectname __const
>    segname __TEXT
>       addr 0x00015f50
>       size 0x000000a0
>     offset 89936
>      align 2^4 (16)
>     reloff 0
>     nreloc 0
>      flags 0x00000000
>  reserved1 0
>  reserved2 0
> Section
>   sectname __literal8
>    segname __TEXT
>       addr 0x00015ff0
>       size 0x00000008
>     offset 90096
>      align 2^3 (8)
>     reloff 0
>     nreloc 0
>      flags 0x00000004
>  reserved1 0
>  reserved2 0
> Load command 1
>       cmd LC_SEGMENT
>   cmdsize 328
>   segname __DATA
>    vmaddr 0x00016000
>    vmsize 0x00003000
>   fileoff 90112
>  filesize 12288
>   maxprot 0x00000007
>  initprot 0x00000003
>    nsects 4
>     flags 0x0
> Section
>   sectname __data
>    segname __DATA
>       addr 0x00016000
>       size 0x0000227c
>     offset 90112
>      align 2^5 (32)
>     reloff 0
>     nreloc 0
>      flags 0x00000000
>  reserved1 0
>  reserved2 0
> Section
>   sectname __dyld
>    segname __DATA
>       addr 0x0001827c
>       size 0x00000008
>     offset 98940
>      align 2^2 (4)
>     reloff 0
>     nreloc 0
>      flags 0x00000000
>  reserved1 0
>  reserved2 0
> Section
>   sectname __bss
>    segname __DATA
>       addr 0x00018284
>       size 0x00000024
>     offset 0
>      align 2^2 (4)
>     reloff 0
>     nreloc 0
>      flags 0x00000001
>  reserved1 0
>  reserved2 0
> Section
>   sectname __common
>    segname __DATA
>       addr 0x000182a8
>       size 0x00000004
>     offset 0
>      align 2^2 (4)
>     reloff 0
>     nreloc 0
>      flags 0x00000001
>  reserved1 0
>  reserved2 0
> Load command 2
>       cmd LC_SEGMENT
>   cmdsize 192
>   segname __IMPORT
>    vmaddr 0x00019000
>    vmsize 0x00001000
>   fileoff 102400
>  filesize 4096
>   maxprot 0x00000007
>  initprot 0x00000007
>    nsects 2
>     flags 0x0
> Section
>   sectname __pointers
>    segname __IMPORT
>       addr 0x00019000
>       size 0x000000ac
>     offset 102400
>      align 2^2 (4)
>     reloff 0
>     nreloc 0
>      flags 0x00000006
>  reserved1 0 (index into indirect symbol table)
>  reserved2 0
> Section
>   sectname __jump_table
>    segname __IMPORT
>       addr 0x000190c0
>       size 0x000004dd
>     offset 102592
>      align 2^6 (64)
>     reloff 0
>     nreloc 0
>      flags 0x04000008
>  reserved1 43 (index into indirect symbol table)
>  reserved2 5 (size of stubs)
> Load command 3
>       cmd LC_SEGMENT
>   cmdsize 56
>   segname __LINKEDIT
>    vmaddr 0x0001a000
>    vmsize 0x00006000
>   fileoff 106496
>  filesize 24436
>   maxprot 0x00000007
>  initprot 0x00000001
>    nsects 0
>     flags 0x0
> Load command 4
>      cmd LC_SYMTAB
>  cmdsize 24
>   symoff 112544
>    nsyms 572
>   stroff 120624
>  strsize 10308
> Load command 5
>             cmd LC_DYSYMTAB
>         cmdsize 80
>       ilocalsym 0
>       nlocalsym 262
>      iextdefsym 262
>      nextdefsym 44
>       iundefsym 306
>       nundefsym 266
>          tocoff 0
>            ntoc 0
>       modtaboff 0
>         nmodtab 0
>    extrefsymoff 0
>     nextrefsyms 0
>  indirectsymoff 119456
>   nindirectsyms 292
>       extreloff 119408
>         nextrel 6
>       locreloff 106496
>         nlocrel 756
> Load command 6
>           cmd LC_LOAD_DYLIB
>       cmdsize 52
>          name /usr/lib/libSystem.B.dylib (offset 24)
>    time stamp 2 Thu Jan  1 05:30:02 1970
>       current version 111.1.1
> compatibility version 1.0.0
> Load command 7
>           cmd LC_LOAD_DYLIB
>       cmdsize 88
>          name
> /System/Library/Frameworks/Python.framework/Versions/2.5/Python (offset 24)
>    time stamp 2 Thu Jan  1 05:30:02 1970
>       current version 2.5.1
> compatibility version 2.5.0
> Load command 8
>           cmd LC_LOAD_DYLIB
>       cmdsize 52
>          name /usr/lib/libgcc_s.1.dylib (offset 24)
>    time stamp 2 Thu Jan  1 05:30:02 1970
>       current version 1.0.0
> compatibility version 1.0.0
>
>
>
>
> _______________________________________________
> 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