Django无法找到MySQLdb python模块

时间:2010-07-14 02:49:56

标签: python django mysql

从源代码安装Django(python setup.py install等),从源代码安装MySQLdb(python setup.py build,python setup.py install)。使用安装在操作系统(CentOS 5.5)上的Python 2.4。启动服务器后收到以下错误消息:

Error loading MySQLdb module: No module named MySQLdb

调试信息提供的python路径包括

'/usr/lib/python2.4/site-packages'

然而,如果我ls该目录,我可以清楚地看到

MySQL_python-1.2.3-py2.4-linux-i686.egg

使用python交互式shell,我可以输入import MySQLdb,它不会产生任何错误。这让我相信它是一个Django路径问题,但我没有丝毫线索从哪里开始看,因为我是Django和python的新手。

编辑:更具体一点,一切都是以root身份运行的。我还没有在机器上设置任何用户,因此除了root之外不存在任何用户。

EDITx2:更具体地说,Web服务器是Cherokee,并使用uWSGI进行部署。全部从源头安装。

10 个答案:

答案 0 :(得分:33)

你考虑过从python包安装MySQLdb吗? 我还建议您使用pip代替easy_install

首先,您可以将easy_install替换为pip

easy_install pip
pip install pip --upgrade

然后通过PIP安装Django:

pip install MySQL-python
pip install Django

通常已安装easy_install(setuptools的一部分),而pip要好得多。它也提供了卸载选项,并使用平面安装目录而不是EGG文件魔术。这也可能解决一些不兼容问题。

答案 1 :(得分:17)

您是否尝试构建依赖项?这在Ubuntu上为我解决了这个问题:

sudo apt-get build-dep python-mysqldb
pip install MySQLdb-python

答案 2 :(得分:7)

对我有用的(Linux Mint):

sudo apt-get install libmysqlclient-dev (this was the key for me)
pip install mysql-python
pip install django

答案 3 :(得分:2)

如果您正在使用,请尝试此操作 linux: - sudo apt-get install python-mysqldb

windows: - pip install python-mysqldb或           easy_install python-mysqldb

希望这应该有用

答案 4 :(得分:1)

通过从Django项目的目录库中调用“python manage.py shell”,可以找到Python在哪里寻找它的库。然后做:

import sys
import pprint
pprint.pprint(sys.path)

你会看到python从哪里拉出库。还尝试做一个“导入mysql”,看看是否会出错。

最后,WSGI服务的路径(可能)配置了Cherokee中的uWSGI设置 - 抱歉,我不知道该生物的细节如何确定它在何处/如何加载库路径的建议

答案 5 :(得分:1)

我遇到了同样的问题,但这只是virtualenv中的一个问题。

我最终解决的问题是

workon [project_name]
pip uninstall django
pip install mysql-python
pip install django

因此,确保在mysql-python之前安装django似乎有效 这是在Ubuntu系统上并使用virtualenv

答案 6 :(得分:-1)

这对我有用:

sudo apt-get install python-dev

答案 7 :(得分:-1)

pip install mysql-python

解决了我的问题:)

答案 8 :(得分:-1)

就我而言,Python能够访问mySQL,但是Django(1.6)给出了错误:"加载MySQLdb模块时出错:没有名为MySQLdb的模块"

顺便说一句,我在Macbook OSX(Maverick)上。

当我试图跑

pip install mysql-python

编译时出错:" clang:错误:未知参数:' - mno-fused-madd'[-Wunused-command-line-argument-hard-error-in-future]。&# 34;

事实证明,问题是使用新Xcode 5.1的cc编译器的更新行为。当有一个它无法识别的参数时,将其视为致命错误并退出。可以在此处找到覆盖此行为的解决方案:

http://bruteforce.gr/bypassing-clang-error-unknown-argument.html

答案 9 :(得分:-1)

此问题是MySQL for Python适配器安装不完整/不正确的结果 具体来说,我必须编辑mysql_config文件的路径以指向/usr/local/mysql/bin/mysql_config 本文详细讨论了:
 http://dakrauth.com/blog/entry/python-and-django-setup-mac-os-x-leopard/