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