Alright. Here is what I got.

>$ DYLD_LIBRARY_PATH=/usr/local/mysql/lib otool -L /Users/jianbao/projects/
tao.com/djangoSite/lib/python2.7/site-packages/_mysql.so
/Users/jianbao/projects/
tao.com/djangoSite/lib/python2.7/site-packages/_mysql.so:
libmysqlclient.18.dylib (compatibility version 18.0.0, current version
18.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
125.2.0)

Not so much of difference, though. Any ideas?

On Tue, Aug 23, 2011 at 10:10 PM, Graham Dumpleton <
[email protected]> wrote:

> On 24 August 2011 13:55, Jianbao Tao <[email protected]> wrote:
> > Sure. Here is what I got.
> >>$ file
> >> /Users/jianbao/projects/
> tao.com/djangoSite/lib/python2.7/site-packages/_mysql.so
> > /Users/jianbao/projects/
> tao.com/djangoSite/lib/python2.7/site-packages/_mysql.so:
> > Mach-O 64-bit bundle x86_64
> >>$ otool -L
> >> /Users/jianbao/projects/
> tao.com/djangoSite/lib/python2.7/site-packages/_mysql.so
> > /Users/jianbao/projects/
> tao.com/djangoSite/lib/python2.7/site-packages/_mysql.so:
> > libmysqlclient.18.dylib (compatibility version 18.0.0, current version
> > 18.0.0)
> > /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
> > 125.2.0)
> > I don't see why full path would make any difference, though.
> > Any thoughts?
>
> The otool output should show a full path name for
> 'libmysqlclient.18.dylib' else it is indicating that it didn't know
> where to find it. This worries me a bit as if otool doesn't know where
> it is coming from then under Apache it will not either. Ie., could not
> resolve it and thus why image not found.
>
> This may be the actual problem. Ie., Apache doesn't know where to find
> the library at run time and not the 32 bit vs 64 bit issue.
>
> Try running:
>
>  DYLD_LIBRARY_PATH=/usr/local/mysql/lib otool -L
> /Users/jianbao/projects/
> tao.com/djangoSite/lib/python2.7/site-packages/_mysql.so
>
> What do you get for that?
>
> Graham
>
> > On Tue, Aug 23, 2011 at 9:39 PM, Graham Dumpleton
> > <[email protected]> wrote:
> >>
> >> On 24 August 2011 12:31, Jianbao Tao <[email protected]> wrote:
> >> > Graham,
> >> > This is what I got.
> >> >>$ file ./lib/python2.7/site-packages/_mysql.so
> >> > ./lib/python2.7/site-packages/_mysql.so: Mach-O 64-bit bundle x86_64
> >> >>$ otool -L ./lib/python2.7/site-packages/_mysql.so
> >> > ./lib/python2.7/site-packages/_mysql.so:
> >> > libmysqlclient.18.dylib (compatibility version 18.0.0, current version
> >> > 18.0.0)
> >>
> >> Can you change working directory and run this again with full path
> >> name to _mysql.so.
> >>
> >> It says libmysqlclient.18.dylib but missing full path context to know
> >> for sure where that is coming from.
> >>
> >> > /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
> version
> >> > 125.2.0)
> >> > So, it seems _mysql.so is already for x86_64 architecture. But there
> is
> >> > a
> >> > inconsistency about libSystem.B.dylib according the versions reported
> by
> >> > otool. But I am not sure if that dylib is ever used by MySQLdb or not.
> >>
> >> No so worried about the system library versioning. Probably normal.
> >>
> >> Graham
> >>
> >> > Any thoughts?
> >> > Jim
> >> > On Tue, Aug 23, 2011 at 6:41 PM, Graham Dumpleton
> >> > <[email protected]> wrote:
> >> >>
> >> >> What do you get if you run 'file' on _mysql.so extension module file
> in
> >> >> Python installation? Also run 'otool -L _mysql.so' as well to see
> what
> >> >> library it is finding. You have 64 bit libraries so should be okay
> >> >> unless
> >> >> you have 32 bit somewhere else and it is finding that instead.
> >> >>
> >> >> Graham
> >> >>
> >> >> On Wednesday, 24 August 2011, Jianbao Tao <[email protected]>
> >> >> wrote:
> >> >> > Thank you so much, Graham. You may have pointed me to the right
> >> >> > direction.
> >> >> > So, the following is what I get, where I basically filed all
> >> >> > libmysqlclient* files under /usr/local/mysql/lib/. It seems the
> mysql
> >> >> > I
> >> >> > installed is for i386 architecture, but all the libmysqlclient
> files
> >> >> > seem
> >> >> > for x86_64, which is really confusing. Anyway, do you have any
> ideas
> >> >> > of
> >> >> > what's happening here?
> >> >> >>$ mysql --version
> >> >> > mysql  Ver 14.14 Distrib 5.5.14, for osx10.6 (i386) using readline
> >> >> > 5.1
> >> >> >>$ ls /usr/local/mysql/lib/libmysqlclient*
> >> >> > /usr/local/mysql/lib/libmysqlclient.18.dylib
> >> >> > /usr/local/mysql/lib/libmysqlclient_r.18.dylib
> >> >> > /usr/local/mysql/lib/libmysqlclient.a
> >> >> >  /usr/local/mysql/lib/libmysqlclient_r.a
> >> >> > /usr/local/mysql/lib/libmysqlclient.dylib
> >> >> >  /usr/local/mysql/lib/libmysqlclient_r.dylib
> >> >> >>$ file /usr/local/mysql/lib/libmysqlclient.18.dylib
> >> >> > /usr/local/mysql/lib/libmysqlclient.18.dylib: Mach-O 64-bit
> >> >> > dynamically
> >> >> > linked shared library x86_64
> >> >> >>$ file /usr/local/mysql/lib/libmysqlclient.dylib
> >> >> > /usr/local/mysql/lib/libmysqlclient.dylib: Mach-O 64-bit
> dynamically
> >> >> > linked shared library x86_64
> >> >> >>$ file /usr/local/mysql/lib/libmysqlclient.a
> >> >> > /usr/local/mysql/lib/libmysqlclient.a: current ar archive random
> >> >> > library
> >> >> >>$ file /usr/local/mysql/lib/libmysqlclient_r.18.dylib
> >> >> > /usr/local/mysql/lib/libmysqlclient_r.18.dylib: Mach-O 64-bit
> >> >> > dynamically linked shared library x86_64
> >> >> >>$ file /usr/local/mysql/lib/libmysqlclient_r.dylib
> >> >> > /usr/local/mysql/lib/libmysqlclient_r.dylib: Mach-O 64-bit
> >> >> > dynamically
> >> >> > linked shared library x86_64
> >> >> >>$ file /usr/local/mysql/lib/libmysqlclient_r.a
> >> >> > /usr/local/mysql/lib/libmysqlclient_r.a: current ar archive random
> >> >> > library
> >> >> >
> >> >> >
> >> >> > On Tue, Aug 23, 2011 at 5:09 PM, Graham Dumpleton
> >> >> > <[email protected]> wrote:
> >> >> >
> >> >> > On 24 August 2011 08:58, Jim <[email protected]> wrote:
> >> >> >> Hello folks,
> >> >> >> This probably has been discussed many times, but I still can't
> find
> >> >> >> any
> >> >> >> solution yet. Basically, it turns out that python can load MySQLdb
> >> >> >> just
> >> >> >> fine, but Apache can't load MySQLdb from the wsgi script.
> >> >> >> Here is the configuration of my machine.
> >> >> >> Mac OS X Snow Leopard 10.6.8
> >> >> >> Apache2 (shipped with Snow Leopard)
> >> >> >
> >> >> > Which is fat and by default will run as 64 bit.
> >> >> >
> >> >> >> Python 2.7 (from python.org)
> >> >> >
> >> >> > Which I believe now comes as fat binary so should be okay.
> >> >> >
> >> >> >> virtualenv
> >> >> >> MySQL-python 1.2.3
> >> >> >
> >> >> > This is where problems start.
> >> >> >
> >> >> > Because Apache is going to run as 64 bit, and because MySQL client
> >> >> > libraries are not fat but for a specific architecture, you need to
> >> >> > ensure you installed 64 bit MySQL and not 32 but version.
> >> >> >
> >> >> > For example, on my system I have:
> >> >> >
> >> >> >  mysql-5.1.53-osx10.6-x86_64
> >> >> >
> >> >> > and get:
> >> >> >
> >> >> >  $ file /usr/local/mysql/lib/libmysqlclient.16.dylib
> >> >> >  /usr/local/mysql/lib/libmysqlclient.16.dylib: Mach-O 64-bit
> >> >> > dynamically linked shared library x86_64
> >> >> >
> >> >> > I suspect you will find that yours is only 32 bit and not 64 bit.
> >> >> > That
> >> >> > is why you would get error:
> >> >> >
> >> >> >  Reason: image not found
> >> >> >
> >> >> > Can you run the 'file' command on the dylib and see what it says.
> >> >> >
> >> >> > Graham
> >> >> >
> >> >> >> BTW, I can import MySQLdb with no problem under python
> interpreter.
> >> >> >> I am using python2.7 in a virtual environment created by
> virtualenv.
> >> >> >> Here is
> >> >> >> the error info extracted from the Apache error log. To make the
> >> >> >> lines
> >> >> >> shorter, I deleted all the time tags in the brackets.
> >> >> >> Any ideas how to fix it?
> >> >> >> [] mod_wsgi (pid=3136): Target WSGI script
> >> >> >> '/Users/jianbao/projects/tao.com/mysite/apache/django.wsgi'
> cannot
> >> >> >> be
> >> >> >> loaded
> >> >> >> as Python module.
> >> >> >> [] mod_wsgi (pid=3136): Exception occurred processing WSGI script
> >> >> >> '/Users/jianbao/projects/tao.com/mysite/apache/django.wsgi'.
> >> >> >> [] Traceback (most recent call last):
> >> >> >> []   File
> >> >> >> "/Users/jianbao/projects/tao.com/mysite/apache/django.wsgi",
> >> >> >> line
> >> >> >> 56, in <module>
> >> >> >> []     import MySQLdb
> >> >> >> []   File
> >> >> >>
> >> >> >>
> >> >> >> "/Users/jianbao/projects/
> tao.com/mysite/lib/python2.7/site-packages/MySQLdb/__init__.py",
> >> >> >> line 19, in <module>
> >> >> >> []     import _mysql
> >> >> >> [] ImportError:
> >> >> >>
> >> >> >>
> >> >> >> dlopen(/Users/jianbao/projects/
> tao.com/mysite/lib/python2.7/site-packages/_mysql.so,
> >> >> >> 2): Library not loaded: libmysqlclient.18.dylib
> >> >> >> []   Referenced from:
> >> >> >>
> >> >> >>
> >> >> >> /Users/jianbao/projects/
> tao.com/mysite/lib/python2.7/site-packages/_mysql.so
> >> >> >> []   Reason: image not found
> >> >> >>
> >> >> >> --
> >> >> >> You received this message because you are subscribed to the Google
> >> >> >> Groups
> >> >> >> "modwsgi" group.
> >> >> >> To view this discussion on the web visit
> >> >> >> https://groups.google.com/d/msg/modwsgi/-/_S2GuYUGqosJ.
> >> >> >> To post to this group, send email to [email protected].
> >> >> >> To unsubscribe from this group, send email to
> >> >> >> [email protected].
> >> >> >> For more options, visit this group at
> >> >> >> http://groups.google.com/group/modwsgi?hl=en.
> >> >> >>
> >> >> >
> >> >> > --
> >> >> > You received this message because you are subscribed to the Google
> >> >> > Groups "modwsgi" group.
> >> >> > To post to this group, send email to
> >> >> >
> >> >> > --
> >> >> > You received this message because you are subscribed to the Google
> >> >> > Groups "modwsgi" group.
> >> >> > To post to this group, send email to [email protected].
> >> >> > To unsubscribe from this group, send email to
> >> >> >
> >> >> > [email protected] <
> modwsgi%[email protected]>.
> >> >> > For more options, visit this group at
> >> >> > http://groups.google.com/group/modwsgi?hl=en.
> >> >> >
> >> >>
> >> >> --
> >> >> You received this message because you are subscribed to the Google
> >> >> Groups
> >> >> "modwsgi" group.
> >> >> To post to this group, send email to [email protected].
> >> >> To unsubscribe from this group, send email to
> >> >> [email protected].
> >> >> For more options, visit this group at
> >> >> http://groups.google.com/group/modwsgi?hl=en.
> >> >
> >> > --
> >> > You received this message because you are subscribed to the Google
> >> > Groups
> >> > "modwsgi" group.
> >> > To post to this group, send email to [email protected].
> >> > To unsubscribe from this group, send email to
> >> > [email protected].
> >> > For more options, visit this group at
> >> > http://groups.google.com/group/modwsgi?hl=en.
> >> >
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups
> >> "modwsgi" group.
> >> To post to this group, send email to [email protected].
> >> To unsubscribe from this group, send email to
> >> [email protected].
> >> For more options, visit this group at
> >> http://groups.google.com/group/modwsgi?hl=en.
> >>
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "modwsgi" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected].
> > For more options, visit this group at
> > http://groups.google.com/group/modwsgi?hl=en.
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "modwsgi" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/modwsgi?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/modwsgi?hl=en.

Reply via email to