ok now I see sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/ mysql/lib/libmysqlclient.18.dylib /usr/local/python_virtualenv/ baseline/lib/python2.7/site-packages/_mysql.so
i was wondering how install_name_tool was globally changing references to libmysqlclient.18.dylib, now I see it is only patching _mysql.so Well that's fixed my problem, but it would be interesting to understand why _mysql.so couldn't find libmysqlclient.18.dylib in the first place thank you for all you help, let me know if there is anything I can do if you still wish to get to the bottom of this problem thank you Mathew On Nov 19, 2:19 pm, Simon Kesenci <[email protected]> wrote: > You left out the last argument, {file which can't load dylib}, probably the > MySQLdb Python module. > > --S. > > On Nov 18, 2011, at 6:59 PM, mathew davis wrote: > > > > > > > > > i'm doing something wrong, i'm getting a usage warning that my > > install_name_tool syntax is wrong > > > (baseline)otter:lib mathew$ pwd > > /usr/local/mysql/lib > > (baseline)otter:lib mathew$ sudo install_name_tool -change > > libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib > > Password: > > Usage: install_name_tool [-change old new] ... [-rpath old new] ... [- > > add_rpath new] ... [-delete_rpath old] ... [-id name] input > > (baseline)otter:lib mathew$ otool -L libmysqlclient.18.dylib > > libmysqlclient.18.dylib: > > 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.0.1) > > > On Nov 19, 12:23 pm, Simon Kesenci <[email protected]> wrote: > >> I've solved this with install_name_tool: > > >> sudo install_name_tool -change libmysqlclient.16.dylib > >> /full/path/to/libmysqlclient.16.dylib {file which can't load dylib} > > >> --S. > > >> On Nov 18, 2011, at 16:33, Graham Dumpleton <[email protected]> > >> wrote: > > >>> This is an issue with how MySQLdb Python module is built. Can you tell > >>> me how you installed it? > > >>> Did you use pip, or did you download package as tar.gz and run setup.py > >>> in it? > > >>> I have tried twice before to sort this out with people on IRC but they > >>> would not do what I asked them to help me solve it properly. I am at > >>> least most of the way along sorting out what the issue is however. :-) > > >>> Graham > > >>> On 19 November 2011 08:41, mathew davis <[email protected]> wrote: > >>>> I am trying to run django on osx 10.7 (lion) with apache mod_wsgi and > >>>> virtualenv. > >>>> My site works if I use the django testing server: > > >>>>> (baseline)otter:hello mathew$ python manage.py runserver > > >>>> but it doesn't work when I run apache. The core of the error seems to be > > >>>>> Library not loaded: libmysqlclient.16.dylib > > >>>> I think its to do with the path apache is using to locate > >>>> libmysqlclient.16.dylib > > >>>> when I run otool in the lib directory it looks good > > >>>>> otter:lib mathew$ pwd > >>>>> /usr/local/mysql/lib > > >>>>> otter:lib mathew$ otool -L libmysqlclient.16.dylib > >>>>> libmysqlclient.16.dylib: > >>>>> libmysqlclient.16.dylib (compatibility version 16.0.0, > >>>>> current > >>>>> version 16.0.0) > >>>>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, > >>>>> current version 125.0.1) > > >>>> but from outside it can't find it > > >>>>> otter:lib mathew$ cd / > >>>>> otter:/ mathew$ otool -L libmysqlclient.16.dylib > >>>>> otool: can't open file: libmysqlclient.16.dylib (No such file or > >>>>> directory) > > >>>> if i manually set DYLD_LIBRARY_PATH otool works > > >>>>> otter:lib mathew$ DYLD_LIBRARY_PATH=/usr/local/mysql/lib otter:lib > >>>>> mathew$ otool -L libmysqlclient.16.dylib libmysqlclient.16.dylib: > >>>>> libmysqlclient.16.dylib (compatibility version 16.0.0, current > >>>>> version 16.0.0) /usr/lib/libSystem.B.dylib (compatibility version > >>>>> 1.0.0, current version 125.0.1) > > >>>> When I run the django testing server, my .bash_profile sets up the > >>>> virtualenv and the path to the mysql dynamic library > > >>>>> export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_LIBRARY_PATH > >>>>> export PATH > > >>>> When i run apache it finds my virtualenv paths, but it doesn't seem to > >>>> find > >>>> the dynamic library path. > > >>>> I tried adding this path to /usr/sbin/envvars > > >>>>> > >>>>> DYLD_LIBRARY_PATH="/usr/lib:/usr/local/mysql/lib:$DYLD_LIBRARY_PATH" > >>>>> export DYLD_LIBRARY_PATH > > >>>> and to /private/etc/paths.d/libmysql > > >>>>> /usr/local/mysql/lib > > >>>> then restarted the machine > >>>> but that has not changed the error message. > > >>>>> Error loading MySQLdb module: > >>>>> dlopen(/usr/local/python_virtualenv/baseline/lib/python2.7/site-packages/_mysql.so, > >>>>> 2): > >>>>> Library not loaded: libmysqlclient.16.dylib > > >>>> I don't think is a permissions issue: > > >>>>> -rwxr-xr-x 1 root wheel 3787328 4 Dec 2010 > >>>>> libmysqlclient.16.dylib > > >>>>> drwxr-xr-x 39 root wheel 1394 18 Nov 21:07 / > >>>>> drwxr-xr-x@ 15 root wheel 510 24 Oct 22:10 /usr > >>>>> drwxrwxr-x 20 root admin 680 2 Nov 20:22 /usr/local > >>>>> drwxr-xr-x 20 mathew admin 680 9 Nov 21:58 > >>>>> /usr/local/python_virtualenv > >>>>> drwxr-xr-x 6 mathew admin 204 2 Nov 21:36 > >>>>> /usr/local/python_virtualenv/baseline > >>>>> drwxr-xr-x 4 mathew admin 136 2 Nov 21:26 > >>>>> /usr/local/python_virtualenv/baseline/lib > >>>>> drwxr-xr-x 52 mathew admin 1768 2 Nov 21:26 > >>>>> /usr/local/python_virtualenv/baseline/lib/python2.7 > >>>>> drwxr-xr-x 18 mathew admin 612 4 Nov 21:20 > >>>>> /usr/local/python_virtualenv/baseline/lib/python2.7/site-packages > >>>>> -rwxr-xr-x 1 mathew admin 66076 2 Nov 21:18 > >>>>> /usr/local/python_virtualenv/baseline/lib/python2.7/site-packages/_mysql.so > > >>>> **What do i need to do so that mod_wsgi will find > >>>> libmysqlclient.16.dylib?** > > >>>> apache and mysql are both 64 bit: > > >>>>> otter:lib mathew$ file /usr/sbin/httpd /usr/sbin/httpd: Mach-O > >>>>> universal binary with 2 architectures /usr/sbin/httpd (for > >>>>> architecture x86_64): Mach-O 64-bit executable x86_64 /usr/sbin/httpd > >>>>> (for architecture i386): Mach-O executable i386 otter:lib mathew$ > > >>>>> otter:lib mathew$ 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 > > >>>> here's some more detail of the error: > > >>>>> Request URL: http://hello.local/DjangoVersion: 1.3.1 Exception > >>>>> Type: ImproperlyConfigured Exception Value: Error loading MySQLdb > >>>>> module: > > >>>>> dlopen(/usr/local/python_virtualenv/baseline/lib/python2.7/site-packages/_mysql.so, > >>>>> 2): Library not loaded: libmysqlclient.16.dylib Referenced from: > > >>>>> /usr/local/python_virtualenv/baseline/lib/python2.7/site-packages/_mysql.so > >>>>> Reason: image not found Exception > >>>>> Location: > >>>>> /usr/local/python_virtualenv/baseline/lib/python2.7/site-packages/django/db/backends/mysql/base.py > >>>>> in <module>, line 14 Python Executable: /usr/sbin/httpd Python > >>>>> Version: 2.7.2 Python Path: > > >>>>> ['/usr/local/python_virtualenv/baseline/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', > > >>>>> '/usr/local/python_virtualenv/baseline/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg', > >>>>> '/usr/local/python_virtualenv/baseline/lib/python27.zip', > >>>>> '/usr/local/python_virtualenv/baseline/lib/python2.7', > >>>>> '/usr/local/python_virtualenv/baseline/lib/python2.7/plat-darwin', > >>>>> '/usr/local/python_virtualenv/baseline/lib/python2.7/plat-mac', > > >>>>> '/usr/local/python_virtualenv/baseline/lib/python2.7/plat-mac/lib-scriptpackages', > >>>>> '/usr/local/python_virtualenv/baseline/lib/python2.7/lib-tk', > >>>>> '/usr/local/python_virtualenv/baseline/lib/python2.7/lib-old', > >>>>> '/usr/local/python_virtualenv/baseline/lib/python2.7/lib-dynload', > >>>>> '/usr/local/Cellar/python/2.7.2/lib/python2.7', > >>>>> '/usr/local/Cellar/python/2.7.2/lib/python2.7/plat-darwin', > >>>>> '/usr/local/Cellar/python/2.7.2/lib/python2.7/lib-tk', > >>>>> '/usr/local/Cellar/python/2.7.2/lib/python2.7/plat-mac', > > >>>>> '/usr/local/Cellar/python/2.7.2/lib/python2.7/plat-mac/lib-scriptpackages', > >>>>> '/usr/local/python_virtualenv/baseline/lib/python2.7/site-packages', > >>>>> '/usr/local/python_virtualenv/baseline/lib/python2.7/site-packages/PIL', > >>>>> '/Users/mathew/dev', '/usr/local/mysql/lib/'] > > >>>> -- > >>>> 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/-/YIrdgT4hh-oJ. > >>>> 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 > >>> athttp://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 > > athttp://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.
