django.core.exceptions.ImproperlyConfigured:加载MySQLdb模块时出错:没有名为MySQLdb的模块

我正在尝试连接到数据库的MySQL面临的问题。 我也给了我使用的数据库设置。

Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line utility.execute() File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command klass = load_command_class(app_name, subcommand) File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 77, in load_command_class module = import_module('%s.management.commands.%s' % (app_name, name)) File "/home/arundhati/Desktop/test/testprac/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module __import__(name) File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 8, in <module> from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/sql.py", line 9, in <module> from django.db import models File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module> backend = load_backend(connection.settings_dict['ENGINE']) File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__ return getattr(connections[DEFAULT_DB_ALIAS], item) File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__ backend = load_backend(db['ENGINE']) File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/utils.py", line 27, in load_backend return import_module('.base', backend_name) File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module __import__(name) File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 17, in <module> raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb 

数据库设置::

 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 'NAME': 'ar_test_db', # Or path to database file if using # The following settings are not used with sqlite3: 'USER': '', 'PASSWORD': '', 'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. 'PORT': '', # Set to empty string for default. } } 

非常感谢您的帮助 !!

它看起来像你没有安装Python的MySQL包,请尝试:

 pip install mysql-python 

或者如果不使用虚拟环境(在* nix主机上):

 sudo pip install mysql-python 

你必须安装python-mysqldb – 到MySQL的Python接口

尝试
sudo apt-get install python-mysqldb

当我使用python,mysql,sequel pro应用程序在Mac OS X Mountain Lion中为PyCharm设置Django开发环境时,我得到的错误与此线程的所有者相同。 然而,我的回答是谁在Mac OS Mountain Lion x86_x64下运行python-mysqldb(MySql和Python也应该是相同的体系结构),并且已经尝试了像pip等一切。为了解决这个问题,请执行以下步骤:

  1. 从这里下载MySql for Python
  2. 未下载的文件。 在terminal窗口中执行以下操作:tar xvfz downloade.tar。
  3. cd /到untared目录
  4. 运行sudo python setup.py install
  5. 如果你得到这样的错误:“环境错误:找不到/ usr / local / bin / mysql_config”然后尝试添加path屁股如下:“导出PATH = $ PATH:/ usr / local / mysql / bin”。 但id没有帮助我,我find了另一种解决scheme。 在命令执行错误输出结尾,看起来像这样:

    文件“/path_to_file/MySQL-python-1.2.4b4/setup_posix.py”,第25行,在mysql_config中引发EnvironmentError(“%s not found”%(mysql_config.path,))

  6. 用vim打开setup_posix.py并转到第25行(在你的情况下,它可以是不同的,除非它是相同的版本)。

  7. 在你的编辑之后,第25行看起来应该是这样的,除非你的mysql象'/ usr / local / mysql / bin /'那样有符号链接:

    f = popen("%s --%s" % ('/usr/local/mysql/bin/mysql_config', what))

  8. 在此之后,我得到另一个错误如下:

    django.core.exceptions.ImproperlyConfigured:加载MySQLdb模块时出错:dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so,2) :库未加载:libmysqlclient.18.dylib引用自:/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so原因:找不到图像

  9. 最后我在控制台中做了如下操作

    sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

目前一切正常。 所以我希望对使用Mac的人有帮助。 🙂

我的回答与@ Ron-E类似,但是我还是得到了一些错误/更正,所以我在Mavericks和Python 2.7.6上为Mac OSX做了下面的步骤。

  1. 安装Python的mysql包(如果你得到一个成功的消息,那么忽略下面的步骤)

     pip install mysql-python 
  2. 当我做了上述,我得到了错误“EnvironmentError:mysql_config找不到” 在这里输入图像说明 为了解决这个问题,我在terminal做了下面的代码:

     export PATH=$PATH:/usr/local/mysql/bin 
  3. 当我重新步骤1,我得到一个新的错误“错误:命令'cc'失败,退出状态1” 在这里输入图像说明 为了解决这个问题,我在terminal做了下面的代码:

      export CFLAGS=-Qunused-arguments export CPPFLAGS=-Qunused-arguments 
  4. 我重新步骤1,并获得成功消息“成功安装mysql-python”!

如果您尝试使用pip安装mysqlclient时出现错误,则可能缺lessmysql开发库。 通过运行安装它:

 apt-get install libmysqlclient-dev 

并再次尝试安装mysqlclient:

 pip install mysqlclient 

你错过了Python的mysqldb库。 使用这个命令(Debian / Ubuntu)来安装它: sudo apt-get install python-mysqldb

从这里下载并安装Mysql-python for windows环境。 http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

在Ubuntu上,build议使用发行版本库。

 sudo apt-get install python-mysqldb 

与Will相同的错误信息,它会帮我安装mysql,因为在安装过程中会添加丢失的文件。 所以之后

 brew install mysql pip install mysql-python 

跑了没有错误。

只要添加其他答案,如果您使用的是Django,build议您在安装Django之前安装mysql-python。

我浪费了很多时间 事实certificate,Python 3不支持默认的数据库库。 您必须使用不同的数据库 。

如果错误是这样的

 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.20.dylib Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so 

然后尝试:

 pip install python-mysqldb 

这也发生在我身上,我相信这已经成为Django开发者和Flask的常见错误,所以我解决这个问题的方法是使用brew。

  1. brew install mysql
  2. sudo pip install mysql-python

这样每一个问题都解决了,两个框架都工作得很好。

PS:对于那些使用macports(比如我自己)的人来说,这可能是一个问题,因为brew的工作方式不同,我的build议是使用brew而不是macports

我希望我能帮上忙。

也许你可以尝试下面的操作模式:
sudo python manage.py runserver 0.0.0.0:8000