it-roy-ru.com

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

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

83
user3182194

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

Просто pip install pymysql и переключите ваш SQLAlchemy URI для запуска следующим образом:

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

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

185
DazWorrall

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

apt-get install python-mysqldb
85
Edward van Kuik

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

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

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

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

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

16
Adventurist

Я получил эту проблему, когда я работал над 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
13
Waseem Akram Malik

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

pip install mysqlclient
12
Doni

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

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

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

Sudo pip install mysql-python

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

7
seokhoonlee

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

4
Flibertyjibbet

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

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

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

virtualenv --system-site-packages .venv

3
Chen Levy
yum install MySQL-python.x86_64

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

0
hamed

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

xcode-select --install
0
chandan kharbanda