【问题标题】:Just Can't Get MySQL working with Python/Django只是无法让 MySQL 与 Python/Django 一起工作
【发布时间】:2015-09-04 15:37:01
【问题描述】:

我已经阅读了很多文章,我是盲人,但我相信你们中的一个人这将是简单的......

我已经在运行 Ubuntu 12.04 的 MyHosting 上设置了一个 VPS。尽我所能,我无法让 MySQL 与 Django 一起运行。当我运行 python3 manage.py migrate 时,我收到一个以以下结尾的错误:

ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

我通过以下方式到达这一点:

sudo apt-get install python3
sudo apt-get install python3-setuptools
sudo easy_install3 pip
sudo pip3 install django

上面安装了Python 3.2.3 django 版本:1.8.4 mysql 版本:Ver 14.14 Distrib 5.5.44

我编辑了 settings.py 以包含以下内容:

DATABASES = {
    'default': {
    'NAME': 'user_data',
        'ENGINE': 'mysql.connector.django',
        'USER': 'mysql_user',
        'PASSWORD': 'priv4te',
        'OPTIONS': {
          'autocommit': True,
        },
    }
}

PS Apache 版本:Apache/2.2.22

【问题讨论】:

标签: python mysql django


【解决方案1】:

The Django docs recommend 你使用 mysqlclient,一个兼容 Python 3 的 MySQLDB 分支。

您应该能够安装它:

pip3 install mysqlclient

使用 virtualenv 可能会更好,在这种情况下,您可以在 virtualenv 中使用 pip 而不是 pip3

pip install mysqlclient

您的数据库后端应该是django.db.backends.mysql

但是,对于 Python 3,mysqlclient 需要 Python 3.3+。如果您想使用 MySQL 运行 Django,我相信您目前的选择是 Python 2.7 或 3.3+。

【讨论】:

  • 我成功运行了 pip3 install mysqlclient,它安装了 1.3.6 版本但是当我尝试 python3 manage.py migrate 我得到这个错误: ImproperlyConfigured: Error loading MySQLdb module: /usr/local/lib /python3.2/dist-packages/_mysql.cpython-32mu.so:未定义符号:PyUnicode_AsUTF8
  • 啊,它看起来像 mysqlclient isn't compatible 与 Python 3.2。是否可以使用 Python 3.4 升级到 Ubuntu 14.04?否则,将 12.04 与 Python 2.7 一起使用可能是最简单的。
  • 我会尝试卸载 Python3(我猜也是 Django)
【解决方案2】:

试试

    pip install MySQL-python

如果您收到错误 mysql_config not found

运行

    sudo apt-get install python-mysqldb

【讨论】:

    猜你喜欢
    • 2014-05-15
    • 1970-01-01
    • 2011-02-18
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多