Подтвердить что ты не робот

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. Все установлено из источника.

4b9b3361

Ответ 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/