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.
