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://.....'
есть немного других водителей вы также можете попробовать.
я получил эту проблему, когда я работал над 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. Надеюсь, это поможет.
Это зависит от версии 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