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