为 Django 安装 MySQL-python

Posted

技术标签:

【中文标题】为 Django 安装 MySQL-python【英文标题】:Installing MySQL-python for Django 【发布时间】:2013-05-02 12:58:49 【问题描述】:

我刚刚学会了如何使用virtualenv,并安装了 Django 1.4.5。我假设virtualenv 为我创建了一个全新的工作环境,因此在安装了 Django 1.4.5 后,我将所有以前的文件复制到了virtualenv 环境中。

我尝试运行服务器,但收到错误消息 "no module named mysqldb"。我认为这意味着我忘记安装 MySQL-python。我尝试通过

安装它
    pip install MySQL-python

但我得到了这个错误

    Downloading/unpacking MySQL-python
    Running setup.py egg_info for package MySQL-python
    The required version of distribute (>=0.6.28) is not available,
    and can't be installed while this script is running. Please
    install a more recent version first, using
    'easy_install -U distribute'.

    (Currently using distribute 0.6.24     (/home/bradford/Development/Django/django_1.4.5/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg))
    Complete output from command python setup.py egg_info:
    The required version of distribute (>=0.6.28) is not available,

    and can't be installed while this script is running. Please

    install a more recent version first, using

    'easy_install -U distribute'.



    (Currently using distribute 0.6.24  (/home/bradford/Development/Django/django_1.4.5/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg))

    ----------------------------------------
    Command python setup.py egg_info failed with error code 2 in /home/bradford/Development/Django/django_1.4.5/build/MySQL-python

不太确定如何解决此问题 =/ 非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

我最近遇到了这个问题(只是与 Django 无关)。就我而言,我正在使用默认的 pip 和分发版本在 Ubuntu 12.04 上进行开发,这对于 MySQL-python 来说基本上有点过时了。

因为您在隔离的 virtualenv 中工作,所以您可以安全地按照建议的说明进行操作,而不会影响您的 Python 安装。

所以你可以...

workon your_virtualenv #activate your virtualenv, you do use virtualenvwrapper, right?
easy_install -U distribute #update distribute on your virtualenv
pip install MySQL-python #install your package

如果由于某种原因升级分发不是一个选项,您可以尝试安装旧版本的MySQL-python,如下所示(您必须检查此版本是否与您的 Django 版本兼容):

pip install MySQL-python==x.y.z #where x.y.z is the version you want

【讨论】:

太棒了!非常感谢你! easy_install -U 分发成功了!谢谢!!! 没有问题,我第一次能够回答我经常问的那种 SO 问题 :) 我还没有回答一个=/ 请注意,distribute 已与 setuptools 重新合并,因此此答案可能不再适用(可能有更好的方法来更新 setuptools/distribute,或使用更新版本的 virtualenv 本身创建 virtualenv) 【参考方案2】:

花了一个小时浏览 ***。最终找到答案in the other question。这就是拯救我的原因:

sudo apt-get install libmysqlclient-dev

mysql_config 随包一起提供。

【讨论】:

【参考方案3】:

在 virtualenv 中做时:

pip install MySQL-python

我明白了

EnvironmentError: mysql_config not found

如Artem Fedosov所说,要安装mysql_config,首先要安装

sudo apt-get install libmysqlclient-dev

那么在 virtualenv 中一切正常

【讨论】:

这对我来说是最好的答案,我遇到了mysql_config 错误并接受了答案【参考方案4】:

用于 Python (mysql-python) 的 MySQL 驱动程序需要 libmysqlclient-dev。您可以通过以下方式获得它:

sudo apt-get update
sudo apt-get install libmysqlclient-dev

如果没有安装 python-dev,你可能也需要安装它:

sudo apt-get install python-dev

现在你可以安装 MySQL 驱动了:

pip install mysql-python

以下是 Django 中 MySQL 的更详细文档:

http://codex.themedelta.com/how-to-install-django-with-mysql-in-a-virtualenv-on-linux/

【讨论】:

【参考方案5】:

我必须这样做:

pip install mysql-python

在虚拟环境中

【讨论】:

【参考方案6】:

命令始终在 ubuntu 中运行:

easy_install -U distribute

稍后

sudo apt-get install libmysqlclient-dev

最后

pip install MySQL-python

【讨论】:

【参考方案7】:

建议的解决方案不适合我,因为运行后我仍然遇到编译错误

`$ sudo apt-get install libmysqlclient-dev`  

所以我不得不跑

 apt-get install python-dev

然后对我来说一切都很好

apt-get install python-dev

【讨论】:

【参考方案8】:

试试这个:

版本 Python 2.7

MySQL-python 包,您应该使用 MySQL_python‑1.2.5‑cp27‑none‑win32.whl 或 MySQL_python‑1.2.5‑cp27‑none‑win_amd64.whl 取决于您安装的是 32 位还是 64 位 Python。

pip install MySQL_python‑1.2.5‑cp27‑none‑win32.whl

如果你正在使用 mysqlclient 包,那么使用 mysqlclient‑1.4.6‑cp27‑cp27m‑win32.whl 或 mysqlclient‑1.4.6‑cp27‑cp27m‑win_amd64.whl

pip install mysqlclient‑1.4.6‑cp27‑cp27m‑win32.whl

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

【讨论】:

以上是关于为 Django 安装 MySQL-python的主要内容,如果未能解决你的问题,请参考以下文章

运行 Django 迁移的“没有安装标签为 'admin' 的应用程序”。该应用程序已正确安装

00 - django | 00-虚拟环境搭建

Django LookupError:没有安装标签为“管理员”的应用程序

ModuleNotFoundError:尝试为 Django 安装 Python 包时没有名为“pip.download”的模块

安装django

为 Mac 启动 Python 3 的 Django django-admin 不工作