【问题标题】:Did you install mysqlclient?你安装了mysqlclient吗?
【发布时间】:2018-11-30 21:12:47
【问题描述】:

我已阅读每篇文章,并在过去 4 小时内搜索了谷歌以尝试找到解决此错误的方法。

我没有运行虚拟环境,这个服务器只用于 django。
服务器:Ubuntu 16.04
蟒蛇: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.

非常感谢任何帮助

【问题讨论】:

  • 我没有运行虚拟环境
  • 请显示完整的回溯。你是如何运行 Django 的?
  • 请注意,即使“此服务器仅用于 django”,使用 virtualenv 来保护您免受系统 python 包更改的影响仍然是一个好主意。
  • pastebin.com/VW8bu1JK 用于启动日志
  • 显然 Pillow 和 MYSQLclient 在 django 中不会一起玩

标签: python django mysql-python


【解决方案1】:

在控制台类型上 -> pip install mysql-python

myengine=''
mydb=''
myuser=''
mypass=''
myhost= '' 
myport = ''

DATABASES = {
    'default': {
    'ENGINE': myengine,
    'NAME': mydb,
    'USER': myuser,
    'PASSWORD': mypass,
    'HOST': myhost,
    'PORT': myport
   }
  }

【讨论】:

  • 虽然此代码 sn-p 可能是解决方案,但 including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
【解决方案2】:

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

sudo apt-get install libmysqlclient-dev

【讨论】:

    【解决方案3】:

    有时您在尝试安装 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
    

    【讨论】:

    • build-essential 对我来说是缺失的。谢谢
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      MySQL 客户端未正确安装。为此,该模块没有找到。那么为什么它返回此错误消息。贝娄我的实用代码,我解决了这个问题。希望你的。

      转到您的命令终端并输入 [基于操作系统(Windows、Mac Os、Linux)]

      如果没有更新,你可以升级 setuptools 包

      pip install --upgrade setuptools
      

      然后安装python mysql

      pip install pymysql
      

      然后编辑项目根目录下的init.py文件(settings.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
          }
      }
      

      就是这样。我希望,我能帮到你一点。如有问题,请联系我。

      【讨论】:

      • 如果想使用mysqlclient,请参见here
      猜你喜欢
      • 2022-07-21
      • 2018-09-28
      • 2019-12-15
      • 2020-11-30
      • 1970-01-01
      • 2018-12-25
      • 2019-04-18
      • 2019-09-03
      • 2018-11-09
      相关资源
      最近更新 更多