从源代码安装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进行部署.全部从源头安装.
你考虑过从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文件魔术.这可能也解决了一些不兼容问题.
你尝试构建依赖项了吗?这在Ubuntu上为我解决了这个问题:
sudo apt-get build-dep python-mysqldb pip install MySQLdb-python
什么对我有用(Linux Mint):
sudo apt-get install libmysqlclient-dev (this was the key for me) pip install mysql-python pip install django