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 74

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 модуль и проблема была исправлена.

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 через 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

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