When I do it I get:

$ otool -L _mysql.so
_mysql.so:
        /usr/local/mysql/lib/libmysqlclient_r.16.dylib (compatibility version
17.0.0, current version 17.0.0)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 
1.2.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 125.2.10)

See what I mean about having full path. That way I know for sure that
is being able to be found.

Without the full path, says that doesn't actually know where to find it.

What happens if you do:

  cd /usr/local/mysql/lib

  otool -L 
/Users/jianbao/projects/tao.com/djangoSite/lib/python2.7/site-packages/_mysql.so

I can't remember if the current directory is looked at.

The try:

  DYLD_FALLBACK_LIBRARY_PATH=/usr/local/mysql/lib otool -L
/Users/jianbao/projects/tao.com/djangoSite/lib/python2.7/site-packages/_mysql.so

but run it from outside of the lib directory.

Finally you might also try:

  otool -l  
/Users/jianbao/projects/tao.com/djangoSite/lib/python2.7/site-packages/_mysql.so

That is lower case 'L' instead of upper case.

What do you get for load commands related to libraries in the output.

Load command 7
          cmd LC_LOAD_DYLIB
      cmdsize 72
         name /usr/local/mysql/lib/libmysqlclient_r.16.dylib (offset 24)
   time stamp 2 Thu Jan  1 10:00:02 1970
      current version 17.0.0
compatibility version 17.0.0
Load command 8
          cmd LC_LOAD_DYLIB
      cmdsize 48
         name /usr/lib/libz.1.dylib (offset 24)
   time stamp 2 Thu Jan  1 10:00:02 1970
      current version 1.2.3
compatibility version 1.0.0
Load command 9
          cmd LC_LOAD_DYLIB
      cmdsize 56
         name /usr/lib/libSystem.B.dylib (offset 24)
   time stamp 2 Thu Jan  1 10:00:02 1970
      current version 125.2.10
compatibility version 1.0.0

Graham

On 24 August 2011 14:19, Jianbao Tao <jianbao....@gmail.com> wrote:
> 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
> <graham.dumple...@gmail.com> wrote:
>>
>> On 24 August 2011 13:55, Jianbao Tao <jianbao....@gmail.com> 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
>> > <graham.dumple...@gmail.com> wrote:
>> >>
>> >> On 24 August 2011 12:31, Jianbao Tao <jianbao....@gmail.com> 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
>> >> > <graham.dumple...@gmail.com> 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 <jianbao....@gmail.com>
>> >> >> 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
>> >> >> > <graham.dumple...@gmail.com> wrote:
>> >> >> >
>> >> >> > On 24 August 2011 08:58, Jim <jianbao....@gmail.com> 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 modwsgi@googlegroups.com.
>> >> >> >> To unsubscribe from this group, send email to
>> >> >> >> modwsgi+unsubscr...@googlegroups.com.
>> >> >> >> 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 modwsgi@googlegroups.com.
>> >> >> > To unsubscribe from this group, send email to
>> >> >> >
>> >> >> >
>> >> >> > modwsgi+unsubscr...@googlegroups.com <modwsgi%2bunsubscr...@googlegroups.com>.
>> >> >> > 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 modwsgi@googlegroups.com.
>> >> >> To unsubscribe from this group, send email to
>> >> >> modwsgi+unsubscr...@googlegroups.com.
>> >> >> 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 modwsgi@googlegroups.com.
>> >> > To unsubscribe from this group, send email to
>> >> > modwsgi+unsubscr...@googlegroups.com.
>> >> > 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 modwsgi@googlegroups.com.
>> >> To unsubscribe from this group, send email to
>> >> modwsgi+unsubscr...@googlegroups.com.
>> >> 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 modwsgi@googlegroups.com.
>> > To unsubscribe from this group, send email to
>> > modwsgi+unsubscr...@googlegroups.com.
>> > 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 modwsgi@googlegroups.com.
>> To unsubscribe from this group, send email to
>> modwsgi+unsubscr...@googlegroups.com.
>> 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 modwsgi@googlegroups.com.
> To unsubscribe from this group, send email to
> modwsgi+unsubscr...@googlegroups.com.
> 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 modwsgi@googlegroups.com.
To unsubscribe from this group, send email to 
modwsgi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/modwsgi?hl=en.

Reply via email to