Debian上Python3下Django的MySQL(MariaDB)后端

Debian上Python3下Django的MySQL(MariaDB)后端,mysql,django,python-3.x,Mysql,Django,Python 3.x,我试图在Debian box上配置Python3下运行的Django,以使用MariaDB作为其后端。如果我按照教程修改我的mysite/setpings.py,即 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'foo', 'USER': 'tim', 'PASSWORD': 'swordfish',

我试图在Debian box上配置Python3下运行的Django,以使用MariaDB作为其后端。如果我按照教程修改我的
mysite/setpings.py
,即

DATABASES = {
    'default': {
        'ENGINE':   'django.db.backends.mysql',
        'NAME':     'foo',
        'USER':     'tim',
        'PASSWORD': 'swordfish',
        'HOST':     'localhost'
    }
}
我有很多悲伤,最后是

  File "/usr/local/lib/python3.4/dist-packages/django/db/backends/mysql/base.py", line 30, in <module>
    'Did you install mysqlclient or MySQL-python?' % e
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'.
Did you install mysqlclient or MySQL-python?
然后,我的悲伤达到了高潮

django.core.exceptions.ImproperlyConfigured: 'mysql.connector.django' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
    'mysql', 'oracle', 'postgresql', 'sqlite3'
Error was: cannot import name 'BaseDatabaseFeatures'
有什么建议吗

更新

根据Matt Seymour的建议,如果我尝试安装
mysqlclient
的pip(实际上是pip3,因为我的系统Python仍然是2.x),我会得到以下结果

tim@merlin:~/mysite$ sudo pip3 install mysqlclient
Collecting mysqlclient
  Using cached mysqlclient-1.3.10.tar.gz
    Complete output from command python setup.py egg_info:
    /bin/sh: 1: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-9uub69zo/mysqlclient/setup.py", line 17, in <module>
        metadata, options = get_config()
      File "/tmp/pip-build-9uub69zo/mysqlclient/setup_posix.py", line 44, in get_config
        libs = mysql_config("libs_r")
      File "/tmp/pip-build-9uub69zo/mysqlclient/setup_posix.py", line 26, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    OSError: mysql_config not found

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-9uub69zo/mysqlclient
tim@merlin:~/mysite$sudo pip3安装mysqlclient
收集mysqlclient
使用缓存的mysqlclient-1.3.10.tar.gz
从命令python setup.py egg_info完成输出:
/bin/sh:1:mysql\u配置:未找到
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/tmp/pip-build-9uub69zo/mysqlclient/setup.py”,第17行,在
元数据,options=get_config()
文件“/tmp/pip-build-9uub69zo/mysqlclient/setup\u posix.py”,第44行,在get\u config中
libs=mysql\u config(“libs\u r”)
mysql\u config中的文件“/tmp/pip-build-9uub69zo/mysqlclient/setup\u posix.py”,第26行
raise环境错误(“%s未找到”%)(mysql\u config.path,)
操作错误:未找到mysql\u配置
----------------------------------------
命令“python setup.py egg_info”在/tmp/pip-build-9uub69zo/mysqlclient中失败,错误代码为1

我使用的是MariaDB而不是MySQL,这一点在这里有意义吗?

好吧,经过一番周折后,我得到了一些答案,尽管没有我想要的那么令人满意

Python 3.x不支持
MySQLdb
库,因此您应该使用它的
mysqlclient
分支。然而,由于我使用的是MySQL的MariaDB fork,因此安装
mysqlclient
所需的一些Debian依赖项没有得到满足。我不想恢复到MySQL,因为我将MariaDB用于其他目的


因此,由于我所需要的只是一个相当健壮的、多用户的后端RDBMS,我已经安装了PostgreSQL用于Django,它似乎工作得很好。

好的,经过一番周折后,我得到了某种程度的答案,尽管没有我想要的那么令人满意

Python 3.x不支持
MySQLdb
库,因此您应该使用它的
mysqlclient
分支。然而,由于我使用的是MySQL的MariaDB fork,因此安装
mysqlclient
所需的一些Debian依赖项没有得到满足。我不想恢复到MySQL,因为我将MariaDB用于其他目的


因此,由于我所需要的只是一个相当健壮的多用户后端RDBMS,我已经安装了PostgreSQL以与Django一起使用,它似乎工作得很好。

您是如何安装python mysql包的?我强烈建议在任何系统包中使用virtualenv。激活您的env,然后
pip安装mysqlclient
您是如何安装python-mysql包的?我强烈建议在任何系统包中使用virtualenv。激活您的环境,然后
pip安装mysqlclient
tim@merlin:~/mysite$ sudo pip3 install mysqlclient
Collecting mysqlclient
  Using cached mysqlclient-1.3.10.tar.gz
    Complete output from command python setup.py egg_info:
    /bin/sh: 1: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-9uub69zo/mysqlclient/setup.py", line 17, in <module>
        metadata, options = get_config()
      File "/tmp/pip-build-9uub69zo/mysqlclient/setup_posix.py", line 44, in get_config
        libs = mysql_config("libs_r")
      File "/tmp/pip-build-9uub69zo/mysqlclient/setup_posix.py", line 26, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    OSError: mysql_config not found

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-9uub69zo/mysqlclient