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

ska*_*kaz 16 python mysql django mysql-python

我是Python的新手,并尝试设置一个Django项目来使用MySql.我已阅读了有关该主题的文档以及其他一些StackOverflow帖子,但我仍然无法使其工作.

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

Error loading MySQLdb module: No module named 'MySQLdb'
Run Code Online (Sandbox Code Playgroud)

我已经安装了推荐的MySql Python Connector(2.0.1),选择了Ubuntu(因为我在Mint Linux上).它安装正确.我仍然得到错误.我不需要将这个库添加到项目或其他任何东西,对吗?看起来python应该只是意识到这一点并成功运行.我能做什么?谢谢.

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

Dan*_*Dev 17

在Ubuntu Server 16.04上,现有的答案都没有对我有用,所以我跑了:

sudo apt-get install libmysqlclient-dev
sudo -H pip3 install mysqlclient
Run Code Online (Sandbox Code Playgroud)

第一个命令给我第二个命令所需的mysql配置.


Peg*_*sus 15

pip install mysqlclient 适用于我python3.5


Mic*_*ert 13

如果您可以安装pymysql - 这对我来说非常适合Python 3.4 - 那么将这些行添加到Django中的manage.py文件中:

try:
    import pymysql
    pymysql.install_as_MySQLdb()
except ImportError:
    pass
Run Code Online (Sandbox Code Playgroud)

这将使pymysql功能像MySQLdb一样,并为我工作.


小智 12

我需要在settings.py中看到你的DATABASES配置,但看起来它正在尝试加载MySQLDB而不是你安装的Mysql Python Connector.数据库应该看起来像这样:

DATABASES = {
    'default': {
        'NAME': 'mydatabase',
        'ENGINE': 'mysql.connector.django',
        'USER': 'myuser',
        'PASSWORD': 'secretpassword',
        'OPTIONS': {
          'autocommit': True,
        },
    }
}
Run Code Online (Sandbox Code Playgroud)

注意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

如果你期望使用南方:

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驱动程序的部分

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

斯科特

  • django.core.exceptions.ImproperlyConfigured:'mysql.connector.django'不是可用的数据库后端.尝试使用'django.db.backends.XXX',其中XXX是以下之一:'mysql','oracle','postgresql_psycopg2','sqlite3' (9认同)