【问题标题】:mysql connector/mysqlclient and django issues on WindowsWindows 上的 mysql 连接器/mysqlclient 和 django 问题
【发布时间】:2018-11-27 14:21:14
【问题描述】:

我已经安装了mysql connector,它已经有一个内置的sql适配器,我也不需要安装mysqlclient,因为我有mysql连接器。但是当我启动 python manage.py migrate 时,它​​要求我下载 mysqlclient。但我无法安装mysqlclient。谁能帮我解决这个问题。谢谢

错误:

File "C:\Program Files (x86)\Python37-32\lib\site-packages\django\db\models\base.py", line 101, in __new__
    new_class.add_to_class('_meta', Options(meta, app_label))
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\django\db\models\base.py", line 305, in add_to_class
    value.contribute_to_class(cls, name)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\django\db\models\options.py", line 203, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\django\db\__init__.py", line 33, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\django\db\utils.py", line 202, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\django\db\utils.py", line 110, in load_backend
    return import_module('%s.base' % backend_name)
  File "C:\Program Files (x86)\Python37-32\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\django\db\backends\mysql\base.py", line 20, in <module>
    ) from err
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

【问题讨论】:

  • 当您进行更改时,我有两个视图,它有点复杂,所以我不得不重新编辑它。不过谢谢。

标签: python mysql django windows


【解决方案1】:

也许你需要安装 mysql-connector-c 连接器及之后:

pip install mysqlclient==1.3.13

【讨论】:

  • 我收到一个错误:无法满足版本要求。我正在使用 python 3.7.1、pip 18.0 和 django 2.1。
  • 你能从 settings.py 文件中显示你的数据库设置吗?
【解决方案2】:

There are two backends 使用 MySQL 和 python

  • mysqlclient - 由文档推荐,但在 Windows 上安装可能很棘手
  • mysql 连接器 - 并不总是支持最新的 Django 版本。

首先,您需要决定要使用哪个后端。

如果你想使用mysql连接器,那么你不需要安装mysqlclient。您确实需要在 DATABASES 设置中更改 ENGINES 以使用连接器后端。

DATABASES = {
    'default': {
        'NAME': 'user_data',
        'ENGINE': 'mysql.connector.django',
        ...
    },
    ...
}

如果您进行此更改,它应该会停止 您是否安装了 mysqlclient 错误消息。有关使用 mysql 连接器的更多信息,请参阅the docs

如果您想使用 mysqlclient,则在您的 DATABASES 设置中将 ENGINE 保留为 'django.db.backends.mysql'。在 Windows 上安装 mysqlclient 可能会很棘手,您有几个不同的选择:

  1. 安装官方轮子。截至 2018 年 12 月,有适用于 Python 3.6 和 Python 3.7 的最新版本 mysqlclient 1.3.14 的轮子。安装mysqlclient:

    pip install mysqlclient==1.3.14
    
  2. 安装unofficial wheels 之一。这将允许您使用 Python 3.7 和更新版本的 mysqlclient。
  3. 从源代码安装 mysqlclient。这在 Windows 上可能很棘手,我无法提供任何提示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-19
    • 2023-03-06
    • 1970-01-01
    • 2017-08-23
    • 2020-06-14
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多