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. Моя структура каталогов точно такая же, как описано в учебнике. Модуль успешно установлен в моей системе, и все же я получаю эту ошибку.

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

10 ответов


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

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

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

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


или попробуйте этот:

apt-get install python-mysqldb

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

engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

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

sudo pip install mysql-python

мой вопрос :

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

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

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

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


попробуйте

pip install mysqlclient

Это зависит от версии Python, а также в моем опыте.

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

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

sudo pip install mysql-python

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


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

./manage.py makemigrations

С Ubuntu Server LTS 16.1, полный стек лампы, 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, когда я пытаюсь настроить новый веб-сервер, но, к сожалению, эта конфигурация была единственным удобным путем, который я мог взять.


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

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

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

virtualenv --system-site-packages .venv


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

xcode-select --install

yum install MySQL-python.x86_64

работал для меня.