Django无法找到MySQLdb Python模块

19 投票
10 回答
38618 浏览
提问于 2025-04-16 01:16

我从源代码安装了Django(用命令python setup.py install之类的),也从源代码安装了MySQLdb(用命令python setup.py build和python setup.py install)。我使用的是系统自带的Python 2.4(CentOS 5.5)。启动服务器后,出现了以下错误信息:

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的交互式命令行中,我可以输入import MySQLdb,并且没有任何错误。这让我觉得可能是Django的路径问题,但因为我对Django和Python都很陌生,所以不知道该从哪里开始查找。

补充说明:目前所有操作都是以root用户进行的。我还没有在机器上设置其他用户,所以除了root之外没有其他用户。

再补充一下:我的网页服务器是Cherokee,使用uWSGI进行部署。所有软件都是从源代码安装的。

10 个回答

7

对我有效的方法(Linux Mint):

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

你试过构建依赖项吗?这个方法在我的Ubuntu系统上解决了这个问题:

sudo apt-get build-dep python-mysqldb
pip install MySQLdb-python
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文件。这可能也能解决一些不兼容的问题。

撰写回答