ImportError: нет модуля с именем MySQLdb

Я имею в виду следующий учебник, чтобы сделать страницу входа для моего веб-приложения. http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982

У меня проблема с базой данных. Я получаю

ImportError: No module named MySQLdb

когда я выполняю

http://127.0.0.1:5000/testdb

Я пробовал все возможные способы установки python mysql, упомянутого в учебнике, easy_install, sudo apt-get install.

Я установил mysql в своем виртуальном env. Структура моего каталога такая же, как и в учебнике. Модуль успешно установлен в моей системе, и все же я получаю эту ошибку.

Пожалуйста, помогите. Что может быть причиной этого.

Ответ 1

Если у вас возникли проблемы с компиляцией двоичного расширения или на платформе, где вы не можете, вы можете попробовать использовать привязки PyMySQL чистого python.

Просто pip install pymysql и переключите свой URI SQLAlchemy, чтобы начать вот так:

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://.....'

Есть несколько других драйверов, которые вы также можете попробовать.

Ответ 2

Или попробуйте следующее:

apt-get install python-mysqldb

Ответ 3

У меня возникла эта проблема, когда я работал над SQLAlchemy. Диалект по умолчанию, используемый SQLAlchemy для MySQL, mysql+mysqldb.

engine = create_engine('mysql+mysqldb://scott:[email protected]/foo')

Я получил ошибку "No module named MySQLdb", когда была выполнена эта команда. Чтобы исправить это, я установил модуль mysql-python, и проблема была исправлена.

sudo pip install mysql-python

Ответ 4

можете попробовать

pip install mysqlclient

Ответ 5

Моя проблема:

return __import__('MySQLdb')
ImportError: No module named MySQLdb

и мое разрешение:

pip install MySQL-python
yum install mysql-devel.x86_64

в самом начале, я только что установил MySQL-python, но проблема все еще существовала. Поэтому я думаю, что если эта проблема возникла, вы должны также учитывать mysql-devel. Надеюсь, это поможет.

Ответ 6

Это зависит от версии Python и моего опыта.

Если вы используете Python 3, ответ @DazWorrall отлично работает для меня.

Однако, если вы используете Python 2, вы должны

sudo pip install mysql-python

который установил бы модуль 'MySQLdb', не изменяя URI SQLAlchemy.

Ответ 7

В то время как @Edward van Kuik ответ правильный, он не учитывает с virtualenv v1.7 и выше.

В частности, установка python-mysqldb через apt на Ubuntu помещается в /usr/lib/pythonX.Y/dist-packages, но этот путь по умолчанию не включен в virtualenv sys.path.

So чтобы решить эту проблему, вы должны создать свой virtualenv с системными пакетами, выполнив что-то вроде:

virtualenv --system-site-packages .venv

Ответ 8

Итак, я потратил около 5 часов, пытаясь понять, как справиться с этой проблемой при попытке запустить

./manage.py makemigrations

С Ubuntu Server LTS 16.1, полный стек LAMP, Apache2 MySql 5.7 PHP 7 Python 3 и Django 1.10.2 Я действительно изо всех сил пытался найти хороший ответ на этот вопрос. На самом деле, я все еще не удовлетворен, но единственное решение, которое сработало для меня, это...

sudo apt-get install build-essential python-dev libapache2-mod-wsgi-py3 libmysqlclient-dev

за которым следует (изнутри виртуальной среды)

pip install mysqlclient

Мне действительно не нравится использовать установки dev при попытке настроить новый веб-сервер, но, к сожалению, эта конфигурация была единственным удобным способом, который я мог бы сделать.

Ответ 9

Получено так много ошибок, связанных с разрешениями, а что нет. Вы можете попробовать это:

xcode-select --install