Thanks, Tom, Reinout. I think I forgot to mention the configuration of my machine. Here it is.
- Mac OS Snow Leopard 10.6.8 - mysql-5.5.14-osx10.6-x86_64 - Apache2 (shipped with OSX) - mod_wsgi 3.3 And here is some additional information that may help. <shell> >$ file /usr/libexec/apache2/mod_wsgi.so /usr/libexec/apache2/mod_wsgi.so: Mach-O universal binary with 2 architectures /usr/libexec/apache2/mod_wsgi.so (for architecture x86_64): Mach-O 64-bit bundle x86_64 /usr/libexec/apache2/mod_wsgi.so (for architecture i386): Mach-O bundle i386 >$ otool -L /usr/libexec/apache2/mod_wsgi.so /usr/libexec/apache2/mod_wsgi.so: /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11) /Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.43.0) </shell> And I do use virtualenv. Here is how I enable the virtual environment in the .wsgi file. <code> """ Modify sys.path to conform to virtualenv setup. The basic idea is to add packages installed in the virtual environment to the front of sys.path so that python will use them instead of those from the system site-packages. """ # Get old sys.path. old_sys_path = list(sys.path) virt_site_packages = os.path.join(path, siteName, 'lib/python2.7/site-packages') site.addsitedir(virt_site_packages) # Put the added new paths to the front of sys.path. new_sys_path = [] for item in list(sys.path): if item not in old_sys_path: new_sys_path.append(item) sys.path.remove(item) sys.path[:0] = new_sys_path </code> The process is pretty standard, which can be found in the mod_wsgi website<http://code.google.com/p/modwsgi/wiki/VirtualEnvironments> . So, any thoughts? On Wed, Aug 24, 2011 at 10:25 AM, Tom Evans <tevans...@googlemail.com>wrote: > On Mon, Aug 22, 2011 at 11:37 PM, 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. > > 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 > > > > Are mysql, python and python-mysql all compiled correctly for the same > architecture? IE all 32 bit or all 64 bit. > > ISTR that this can be a problem on OS X, but I'm not an OS X user... > > > http://stackoverflow.com/questions/1969222/mysql-python-1-2-3-and-os-x-10-5-64-or-32-bit > > Cheers > > Tom > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-users@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.