Django无法找到MySQLdb Python模块
我从源代码安装了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文件。这可能也能解决一些不兼容的问题。