Django не может найти модуль python MySQLdb
Установленный Django из источника (установка python setup.py и т.д.), установлен MySQLdb из источника (python setup.py build, установка python setup.py). Используя 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. Все установлено из источника.
Ответы
Ответ 1
Рассматривали ли вы установку 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. Это может также решить некоторые несовместимости.
Ответ 2
Вы пытались создать зависимости? Это решило это для меня на Ubuntu:
sudo apt-get build-dep python-mysqldb
pip install MySQLdb-python
Ответ 3
Что сработало для меня (Linux Mint):
sudo apt-get install libmysqlclient-dev (this was the key for me)
pip install mysql-python
pip install django
Ответ 4
Попробуйте, если вы используете
linux: - sudo apt-get install python-mysqldb
windows: - установить python-mysqldb или easy_install python-mysqldb
Надеюсь, что это сработает
Ответ 5
Вы можете узнать, где Python ищет его библиотеки, вызывая "python manage.py shell" из базы каталогов вашего проекта Django. Затем выполните:
import sys
import pprint
pprint.pprint(sys.path)
И вы увидите, откуда питон извлекает библиотеки. Также попробуйте выполнить "import mysql", чтобы узнать, не вызывает ли это ошибку.
Наконец, путь для службы WSGI (вероятно) настроен с настройкой uWSGI в Cherokee - извините, я не знаю подробностей этого критерия, чтобы делать предложения о том, как определить, где/как он загружает путь библиотеки.
Ответ 6
У меня была такая же проблема, но это была только проблема внутри virtualenv.
Что я сделал, чтобы, наконец, исправить это, был
workon [project_name]
pip uninstall django
pip install mysql-python
pip install django
Итак, убедитесь, что вы устанавливаете mysql-python
, прежде чем django
работает.
Это относится к системе Ubuntu и использует virtualenv
.
Ответ 7
Это сделало трюк для меня:
sudo apt-get install python-dev
Ответ 8
pip install mysql-python
Решил мою проблему:)
Ответ 9
в моем случае Python смог получить доступ к mySQL, но Django (1.6) дал ошибку: "Ошибка при загрузке модуля MySQLdb: нет модуля с именем MySQLdb"
Я, кстати, на Macbook OSX (Maverick).
Когда я попытался запустить
pip install mysql-python
У меня возникла ошибка во время компиляции: "clang: error: unknown argument: '-mno-fused-madd [-Wunused-command-line-argument-hard-error-in-future]."
Проблема, оказывается, - это обновленное поведение компилятора cc с новым Xcode 5.1. Когда есть параметр, который он не распознает, считается его фатальной ошибкой и завершает работу. Решение об отмене этого поведения можно найти здесь:
http://bruteforce.gr/bypassing-clang-error-unknown-argument.html
Ответ 10
Эта проблема была вызвана неполной/неправильной установкой адаптера MySQL для Python.
В частности, мне пришлось отредактировать путь к файлу mysql_config
, чтобы указать на /usr/local/mysql/bin/mysql_config
.
Обсуждались более подробно в этой статье:
http://dakrauth.com/blog/entry/python-and-django-setup-mac-os-x-leopard/