Джанго не может найти модуль Python MySQLdb - PullRequest
19 голосов
/ 14 июля 2010

Установлен 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

Pythonpath, предоставляемый отладочной информацией, включает

'/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, не существует.

EDITx2: И, если быть более точным, веб-сервер - это Cherokee, который развертывается с использованием uWSGI. Все установлено из источника.

Ответы [ 10 ]

33 голосов
/ 15 июля 2010

Рассматривали ли вы установку MySQLdb из пакетов Python? Я также рекомендовал бы делать это с pip вместо easy_install.

Сначала вы можете заменить easy_install на pip:

easy_install pip
pip install pip --upgrade

А затем установите Django через PIP:

pip install MySQL-python
pip install Django

Обычно easy_install уже установлен (часть setuptools), тогда как pip намного лучше. Он также предлагает варианты удаления и использует каталоги плоской установки вместо волшебства файлов EGG. Это может также решить некоторые несовместимости.

17 голосов
/ 20 февраля 2011

Вы пытались построить зависимости? Это решило это для меня в Ubuntu:

sudo apt-get build-dep python-mysqldb
pip install MySQLdb-python
7 голосов
/ 16 февраля 2013

Что сработало для меня (Linux Mint):

sudo apt-get install libmysqlclient-dev (this was the key for me)
pip install mysql-python
pip install django
2 голосов
/ 15 апреля 2014

Попробуйте, если вы используете linux: - sudo apt-get install python-mysqldb

windows: - pip install python-mysqldb или easy_install python-mysqldb

Надеюсь, это должно работать

1 голос
/ 16 ноября 2012

У меня была такая же проблема, но это была только проблема в virtualenv.

Что я сделал, чтобы окончательно ее исправить, было

workon [project_name]
pip uninstall django
pip install mysql-python
pip install django

Поэтому убедитесь, что вы установили mysql-python до django, кажется, работает.Это в системе Ubuntu и используется virtualenv.

1 голос
/ 14 июля 2010

Вы можете узнать, где Python ищет свои библиотеки, вызвав "python manage.py shell" из базы каталогов вашего проекта Django. Затем выполните:

import sys
import pprint
pprint.pprint(sys.path)

И вы увидите, откуда питон вытягивает библиотеки. Также попробуйте выполнить «импорт mysql», чтобы увидеть, не вылетает ли ошибка.

Наконец, путь для службы WSGI (вероятно) настраивается с помощью настройки uWSGI в Cherokee - извините, я не знаю подробностей этого критерия, чтобы давать предложения о том, как определить, где и как он загружает путь к библиотеке .

0 голосов
/ 29 февраля 2016

Эта проблема возникла из-за неполной / неправильной установки адаптера MySQL для Python.
В частности, мне пришлось отредактировать путь к файлу mysql_config, чтобы он указывал на /usr/local/mysql/bin/mysql_config.
Более подробно обсуждается в этой статье:
http://dakrauth.com/blog/entry/python-and-django-setup-mac-os-x-leopard/

0 голосов
/ 25 марта 2014

в моем случае Python смог получить доступ к mySQL, но Django (1.6) выдал ошибку: «Ошибка загрузки модуля MySQLdb: нет модуля с именем MySQLdb»

Я на Macbook OSX (Maverick),Кстати.

Когда я пытался запустить

pip install mysql-python

Я получил ошибку во время компиляции: "clang: error: unknown аргумент: '-mno-fused-madd' [-Wunused-command-line-arguments-hard-error-in-future]. "

Оказывается, проблема в обновленном поведении компилятора cc с новым Xcode 5.1.Когда есть параметр, который он не распознает, он считает его фатальной ошибкой и завершает работу.Решение переопределить это поведение можно найти здесь:

http://bruteforce.gr/bypassing-clang-error-unknown-argument.html

0 голосов
/ 15 февраля 2014
pip install mysql-python

Решил мою проблему:)

0 голосов
/ 20 ноября 2012

Это помогло мне:

sudo apt-get install python-dev
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...