您安装了mysqlclient吗?

时间:2018-06-21 13:47:42

标签: python django mysql-python

我已阅读了每一篇帖子,并在过去4个小时内用Google搜索了一下,以寻求解决此错误的方法。

我没有运行虚拟环境,该服务器仅用于django。
服务器:Ubuntu 16.04
python:3.5.2

我收到此错误

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

尝试安装mysqlclient

sudo -H pip3 install mysqlclient
Requirement already satisfied: mysqlclient in /usr/local/lib/python3.5/dist-packages (1.3.12)

使用Ubuntu

sudo apt-get install -y python3-mysqldb
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-mysqldb is already the newest version (1.3.7-1build2).
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

非常感谢您的帮助

5 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,这是一个快速简便的解决方案:

sudo apt-get install libmysqlclient-dev

答案 1 :(得分:1)

MySQL客户端未正确安装。为此,找不到该模块。那么为什么它返回此错误消息。在下面的实际代码中,我解决了这个问题。希望可能是你。

转到命令终端,然后键入[基于操作系统(Windows,Mac OS,Linux)]

您可以升级setuptools软件包(如果未更新)

pip install --upgrade setuptools

然后安装python mysql

pip install pymysql

然后在项目根目录(位于settings.py文件所在的位置)中编辑 init .py文件

import pymysql
pymysql.install_as_MySQLdb()

在根目录下编辑settings.py文件:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database name',
        'USER': 'username',
        'PASSWORD': 'password',
        'HOST': '127.0.0.1',  // If localhost
        'PORT': '3306',  // your database running port
    }
}

就是这样。希望我能对您有所帮助。如有任何问题,请给我评论。

答案 2 :(得分:1)

有时您在尝试安装mysqlclient时遇到此类型错误

  ERROR: Command errored out with exit status 1:
 command: /home/alen/Desktop/django_admin/admindashboard/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-0_fdpfs5/mysqlclient/setup.py'"'"'; __file__='"'"'/tmp/pip-install-0_fdpfs5/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-0_fdpfs5/mysqlclient/pip-egg-info
     cwd: /tmp/pip-install-0_fdpfs5/mysqlclient/
Complete output (12 lines):
/bin/sh: 1: mysql_config: not found
/bin/sh: 1: mariadb_config: not found
/bin/sh: 1: mysql_config: not found
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-install-0_fdpfs5/mysqlclient/setup.py", line 15, in <module>
    metadata, options = get_config()
  File "/tmp/pip-install-0_fdpfs5/mysqlclient/setup_posix.py", line 65, in get_config
    libs = mysql_config("libs")
  File "/tmp/pip-install-0_fdpfs5/mysqlclient/setup_posix.py", line 31, in mysql_config
    raise OSError("{} not found".format(_mysql_config_path))
OSError: mysql_config not found
----------------------------------------ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

您安装了pymysql,但没有效果,然后请尝试以下命令

     sudo apt-get install python3-dev default-libmysqlclient-dev build-essential #for debin

安装后,然后运行

 pip install mysqlclient

答案 3 :(得分:0)

我做了一个虚拟环境,现在一切正常。

感谢您将我推向这个方向!

我确实发现这是安装枕头的事实。 “ pip3卸载枕头”修复了原来的一个。

答案 4 :(得分:0)

这是非常虚拟的,但这对我有用! 我用了virtualenv。 创建一个.venv文件并激活它。绝对安装其中的每个软件包。 但随后我停用了virtualenv并将mysqlclient直接安装到操作系统中。 现在工作正常。我不知道为什么python,django无法从virtualenv环境中找到mysqlclient。