繁体   English   中英

Python3 + MySql:加载 MySQLdb 模块时出错:没有名为“MySQLdb”的模块

[英]Python3 + MySql: Error loading MySQLdb module: No module named 'MySQLdb'

我是 Python 新手,正在尝试设置一个 Django 项目以使用 MySql。 我已经通读了文档以及关于该主题的其他一些 StackOverflow 帖子,但我仍然无法让它工作。

当我尝试在 Django 中运行迁移时,出现以下错误:

Error loading MySQLdb module: No module named 'MySQLdb'

我已经安装了推荐的MySql Python 连接器 (2.0.1),选择了 Ubuntu(因为我使用的是 Mint Linux)。 它安装正确。 我仍然收到错误。 我不需要将此库添加到项目或任何东西中,对吗? 看起来python应该知道这一点并成功运行。 我能做什么? 谢谢。

编辑:我忘了说:我正在运行 Python 3.4 - 许多典型的解决方案仍在使用 2.7,所以它们不起作用,我尝试过的所有 3.0 解决方案都没有成功。

在 Ubuntu Server 16.04 上,现有的答案都不适合我,所以我跑了:

sudo apt-get install libmysqlclient-dev
sudo -H pip3 install mysqlclient

第一个命令为我获取第二个命令所需的 mysql 配置。

pip install mysqlclient对我有用 python3.5

我需要在 settings.py 中查看您的 DATABASES 配置,但看起来它正在尝试加载 MySQLDB 而不是您安装的 Mysql Python 连接器。 数据库应如下所示:

DATABASES = {
    'default': {
        'NAME': 'mydatabase',
        'ENGINE': 'mysql.connector.django',
        'USER': 'myuser',
        'PASSWORD': 'secretpassword',
        'OPTIONS': {
          'autocommit': True,
        },
    }
}

请注意 ENGINE 部分...它告诉 Django 使用 mysql 连接器而不是 MySQLDB...

此处提供更多信息: http : //bunwich.blogspot.com/2014/02/finally-mysql-connector-that-works-with.html http://dev.mysql.com/doc/connector-python/en/连接器-python-django-backend.html

如果您希望使用 South:

www.pythonanywhere.com/wiki/UsingMySQL

您可能需要注意 Oracle 连接器是 GPL,使用该代码可能存在许可问题。 看这里:

groups.google.com/forum/#!topic/django-developers/8r_RVmUe5ys

Django 1.7 文档建议使用 mysqlclient 驱动程序...

docs.djangoproject.com/en/1.7/ref/databases/--参见Mysql DB API Drivers部分

该客户端的 pypi.python.org/pypi/mysqlclient...

-斯科特

如果您可以安装 pymysql——这对我来说在 Python 3.4 上运行良好——然后将这些行添加到 Django 中的 manage.py 文件中:

try:
    import pymysql
    pymysql.install_as_MySQLdb()
except ImportError:
    pass

这将使 pymysql 功能类似于 MySQLdb 并为我工作。

如果您像我一样,正在使用 Linux 安装,并且在大多数情况下 Linux 仍然需要 Python 2.7。 这意味着

pip install mysqlclient

将为 2.7 安装 MySQL 客户端,它是从 Python 3 分割出来的。要安装 3.x,你需要使用

pip3 install mysqlclient

我不必安装任何软件包,但mysql-common已经安装(Raspbian 安装),所以你的里程可能会有所不同

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM