/usr/local/mysql/lib apparently does not appear in your library path. I haven't installed a Python MySQL module in some years but earlier this year when I installed PHP with MySQL the PHP executables would not link unless I ran all the make commands with DYLD_LIBRARY_PATH="/usr/local/mysql/lib". And then I had to use install_name_tool as mentioned to get PHP to run. Funny enough, otool showed all the other libraries with their full path names. I haven't encountered this problem with any other package.
--S. On Nov 18, 2011, at 7:35 PM, mathew davis wrote: > 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. > -- 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.
