Django无法找到MySQLdb python模块

Whe*_*low 19 python mysql django

从源代码安装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进行部署.全部从源头安装.

vdb*_*oor 33

你考虑过从python包安装MySQLdb吗?我也建议这样做pip而不是easy_install.

首先你可以替换easy_installpip:

easy_install pip
pip install pip --upgrade
Run Code Online (Sandbox Code Playgroud)

然后通过PIP安装Django:

pip install MySQL-python
pip install Django
Run Code Online (Sandbox Code Playgroud)

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


Hon*_*rny 17

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

sudo apt-get build-dep python-mysqldb
pip install MySQLdb-python
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用,而是在Ubuntu 14.04 LTS上使用`pip install mysql-python`(即没有"db") (2认同)

kel*_*rek 7

什么对我有用(Linux Mint):

sudo apt-get install libmysqlclient-dev (this was the key for me)
pip install mysql-python
pip install django
Run Code Online (Sandbox Code Playgroud)


hec*_*ckj 1

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

import sys
import pprint
pprint.pprint(sys.path)
Run Code Online (Sandbox Code Playgroud)

您将看到 python 从哪里提取库。还尝试执行“导入 mysql”以查看是否会排除错误。

最后,WSGI 服务的路径(可能)是使用 Cherokee 中的 uWSGI 设置进行配置的 - 抱歉,我不知道该生物的详细信息,无法就如何确定在何处/如何加载库路径提出建议。