这是OSX 10.6用户经常讨论的问题,但我还没有找到一个有效的解决方案。下面是我的设置:

Python 2.6.1 64bit Django 1.2.1 " MySQL 5.1.47 osx10.6 64bit

我用——no-site-packages创建了一个virtualenvwrapper,然后安装Django。当我激活virtualenv并运行python manage.py syncdb时,我得到这个错误:

Traceback (most recent call last):
File "manage.py", line 11, in <module>
  execute_manager(settings)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager
  utility.execute()
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 257, in fetch_command
  klass = load_command_class(app_name, subcommand)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 67, in load_command_class
  module = import_module('%s.management.commands.%s' % (app_name, name))
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/commands/syncdb.py", line 7, in <module>
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/sql.py", line 5, in <module>
from django.contrib.contenttypes import generic
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/contrib/contenttypes/generic.py", line 6, in <module>
  from django.db import connection
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/db/__init__.py", line 75, in <module>
  connection = connections[DEFAULT_DB_ALIAS]
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/db/utils.py", line 91, in __getitem__
  backend = load_backend(db['ENGINE'])
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/db/utils.py", line 32, in load_backend
  return import_module('.base', backend_name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/db/backends/mysql/base.py", line 14, in <module>
  raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

我还安装了MySQL for Python适配器,但没有效果(可能我安装不正确?)

有人之前处理过这个问题吗?


当前回答

此问题是由于MySQL for Python适配器安装不完整/不正确造成的。具体来说,我必须编辑mysql_config文件的路径,使其指向/usr/local/mysql/bin/mysql_config——本文将更详细地讨论:http://dakrauth.com/blog/entry/python-and-django-setup-mac-os-x-leopard/

其他回答

我在OSX 10.6.6上遇到了同样的问题。但只是在终端上简单的easy_install mysql-python并不能解决这个问题,因为另一个问题随之而来:

错误:命令'gcc-4.2'失败,退出状态为1。

显然,这个问题是在从XCode3 (OSX 10.6自带)升级到XCode4之后出现的。这个更新的版本删除了对建造ppc拱门的支持。如果是同样的情况,请尝试在easy_install mysql-python之前执行以下操作

sudo bash
export ARCHFLAGS='-arch i386 -arch x86_64'
rm -r build
python setup.py build
python setup.py install

非常感谢Ned Deily提供的解决方案。检查在这里

如果你正在使用python3,那么试试这个(我的操作系统是Ubuntu 16.04):

sudo apt-get install python3-mysqldb

安装命令行工具适用于我:

xcode-select --install

我升级到OSX Mavericks和Pycharm 3,开始得到这个错误,我使用pip和easy install,得到这个错误:

命令“/usr/bin/clang”失败,退出状态为1。

所以我需要更新到Xcode 5,并再次尝试使用pip安装。

pip install mysql-python

解决了所有的问题。

运行Ubuntu,我必须做:

sudo apt-get install python-mysqldb