python – django.core.exceptions.ImproperlyConfigured:加载MySQLdb模块时出错:没有名为MySQLdb的模块
python – 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.
}
}
非常感谢您的帮助 !!
The problem Im facing while trying to connect to database for mysql.I have also given the database settings that i have used.Databse Settings::Thanks a lot for the help !!
解决方案:
方案1:
看起来你没有安装python mysql包,试试:
pip install mysql-python
或者如果不使用虚拟环境(在* nix主机上):
sudo pip install mysql-python
方案2:
你必须安装python-mysqldb – MySQL的Python接口
尝试
sudo apt-get install python-mysqldb
方案3:
如果您尝试使用pip安装mysqlclient时出错,则可能缺少mysql开发库。 通过运行安装它:
apt-get install libmysqlclient-dev
并再次尝试安装mysqlclient:
pip install mysqlclient
方案4:
当我在Mac OS X Mountain Lion中使用python,mysql,sequel pro应用程序为PyCharm设置Django开发环境时,我得到的错误与此主题的所有者相同。 但是,对于那些在Mac OS Mountain Lion x86_x64下运行python-mysqldb的人的答案(MySql和Python也应该是相同的架构)并且已经尝试了所有像pip等等。为了解决这个问题,请执行以下步骤:
- 从这里下载MySql for Python
- Untar下载文件。 在终端窗口中执行以下操作:tar xvfz downloade.tar。
- cd /到untared目录
- 运行sudo python setup.py install
如果你得到这样的错误:“环境错误:找不到/ usr / local / bin / mysql_config”然后尝试添加路径屁股如下:“export PATH = $ PATH:/ usr / local / mysql / bin”。 但是id对我没有帮助,我找到了另一个解决方案。 在命令执行错误输出结束时,如下所示:
文件“/path_to_file/MySQL-python-1.2.4b4/setup_posix.py”,第25行,在mysql_config中引发EnvironmentError(“%s not found”%(mysql_config.path,))
用vim打开setup_posix.py并转到第25行(在你的情况下它可以是不同的,除非它是相同的版本)。
编辑后第25行应如下所示,除非你的mysql有符号链接,如下面的’/ usr / local / mysql / bin /’:
f = popen("%s --%s" % ('/usr/local/mysql/bin/mysql_config', what))
在此之后我得到另一个错误如下:
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原因:未找到图像
最后我在控制台中关注了:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
目前一切正常。 所以我希望它会对使用Mac的人有所帮助。 🙂
方案5:
我的答案类似于@ Ron-E,但我还有一些错误/更正,所以我在Mavericks和Python 2.7.6上为Mac OSX做了以下步骤。
安装Python mysql包(如果收到成功消息,则忽略以下步骤)
pip install mysql-python
当我做了上述操作时,我收到错误“EnvironmentError:mysql_config not found”
为了解决这个问题,我在终端进行了以下操作:
export PATH=$PATH:/usr/local/mysql/bin
当我重新开始第1步时,我收到一个新错误“错误:命令’cc’失败,退出状态为1”
为了解决这个问题,我在终端进行了以下操作:
export CFLAGS=-Qunused-arguments export CPPFLAGS=-Qunused-arguments
我重新开始第1步并获得成功消息’Successfully installed mysql-python’!
方案6:
从Windows环境下载并安装Mysql-python。 http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python 。
方案7:
你错过了python mysqldb
库。 使用此命令(对于Debian / Ubuntu)来安装它: sudo apt-get install python-mysqldb
方案8:
这是因为它没有找到sql连接器。 尝试:
pip install mysqlclient
方案9:
在Ubuntu上,建议使用分发存储库。
sudo apt-get install python-mysqldb
方案10:
这也发生在我身上,我相信这已成为Django开发人员以及Flask的常见错误,所以我解决这个问题的方法是使用brew。
-
brew install mysql
-
sudo pip install mysql-python
这样每个问题都解决了,两个框架都可以正常工作。
PS:对于那些使用macports的人(比如我自己),这可能是一个问题,因为brew工作在不同的层面,我的建议是使用brew而不是macports
我希望我能提供帮助。
方案11:
对于Ubuntu 16.04和18.04或python 3版本
sudo apt-get install python3-mysqldb
方案12:
使用与Will相同的错误消息,我首先安装mysql,因为在安装过程中将添加丢失的文件。 所以之后
brew install mysql
pip install mysql-python
跑了没有错。
方案13:
只是为了添加其他答案,如果您使用的是Django,建议您在安装Django之前安装mysql-python。
方案14:
我浪费了很多时间在这上面。 事实证明,Python 3不支持默认数据库库。 您必须使用另一个 。
方案15:
如果错误看起来像这样
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
方案16:
面临类似的问题。 我尝试使用pip安装mysql-python
,但由于gcc依赖性错误而失败。
解决方案对我有用
conda install mysql-python
请注意我已经安装了anaconda,它没有gcc依赖。
方案17:
我遇到了同样的问题。以下问题解决了我的问题
在你的shell中运行pip install pymysql
然后,编辑项目源目录中的init.py文件(与settings.py相同),然后编辑
加:
导入pymysql
pymysql.install_as_MySQLdb()
这应该可以解决问题。
方案18:
如果您使用的是pyhton 3.4或更高版本。 你必须安装
sudo apt-get install python3-dev libmysqlclient-dev
在终端。 然后在你的虚拟环境或你安装pip的地方安装pip install mysqlclient
。
方案19:
我在这种环境中解决了这个问题:
$ pyenv --version
pyenv 1.2.9
$ python --version
Python 3.7.2
$ python -m django --version
2.1.7
./settings.py
DATABASES = {
'default': {
'NAME': 'my_db_name',
'ENGINE': 'mysql.connector.django', # 'django.db.backends.mysql'
'USER': '<user>',
'PASSWORD': '<pass>',
'HOST': 'localhost',
'PORT': 3306,
'OPTIONS': {
'autocommit': True,
},
}
}
如果你使用'ENGINE': 'mysql.connector.django'
,安装驱动程序执行:
$ pip install mysql-connector-python
Successfully installed mysql-connector-python-8.0.15 protobuf-3.7.0 six-1.12.0
注意$ pip install mysql-python
对我不起作用。
请注意,如果您使用'ENGINE': 'django.db.backends.mysql'
,您应该安装驱动程序执行:
$ pip install mysqlclient
最后执行:
$ python manage.py migrate
如果没关系,python会创建所有这些表id数据库:
auth_group
auth_group_permissions
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
django_admin_log
django_content_type
django_migrations
django_session
方案20:
也许您可以尝试以下操作模式:
sudo python manage.py runserver 0.0.0.0:8000
方案21:
好像你没有Python文件夹的权限。 试试sudo chown -R $USER /Library/Python/2.7