ImportError: aucun module nommé MySQLdb

je me réfère au tutoriel suivant pour faire une page de connexion pour mon application web. http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982

j'ai un problème avec la base de données. Je vais avoir un

ImportError: No module named MySQLdb

quand j'exécute

http://127.0.0.1:5000/testdb

j'ai essayé toutes les façons possibles d'installer python mysql, celui mentionné dans le tutoriel, easy_install, sudo apt-get install.

j'ai installé mysql dans mon env virtuel. La structure de mon répertoire est identique à celle expliquée dans le tutoriel. Le module est installé avec succès dans mon système et j'obtiens cette erreur.

Aidez-moi. Ce pourrait être la cause.

74
demandé sur DazWorrall 2014-03-07 18:12:16

10 réponses

si vous avez des problèmes avec la compilation de l'extension binaire, ou sur une plate-forme où vous ne pouvez pas, vous pouvez essayer d'utiliser les fixations python PyMySQL .

simplement pip install pymysql et commuter votre Uri SQLAlchemy pour commencer comme ceci:

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

Il y a quelques autres facteurs , vous pouvez aussi essayer.

163
répondu DazWorrall 2014-03-07 14:36:13

Ou essayez ce qui suit:

apt-get install python-mysqldb
82
répondu Edward van Kuik 2014-06-23 11:33:57

j'ai eu ce problème quand je travaillais sur SQLAlchemy. Le dialecte par défaut utilisé par SQLAlchemy pour MySQL est mysql+mysqldb .

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

j'ai eu l'erreur " No module named MySQLdb " lorsque la commande ci-dessus a été exécutée. Pour le réparer, j'ai installé le module mysql-python et le problème a été corrigé.

sudo pip install mysql-python
12
répondu Waseem Akram Malik 2015-01-15 21:57:07

mon problème est:

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

et ma résolution:

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

au tout début, je viens d'installer MySQL-python, mais le problème existait toujours. Donc je pense que si ce problème se produit, vous devriez également prendre mysql-devel en considération. Espérons que cette aide.

12
répondu Adventurist 2015-11-06 07:42:43

essayer

pip install mysqlclient
12
répondu Doni 2016-03-16 23:26:04

cela dépend aussi bien de la Version Python que de mon expérience.

si vous utilisez Python 3, la réponse de @DazWorrall a bien fonctionné pour moi.

cependant, si vous utilisez Python 2, vous devez

sudo pip install mysql-python

qui installerait le module 'MySQLdb' sans avoir à changer L'URI SQLAlchemy.

5
répondu seokhoonlee 2016-03-17 08:54:54

donc j'ai passé environ 5 heures à essayer de comprendre comment traiter ce problème en essayant de courir

./manage.py makemigrations

avec Ubuntu Server LTS 16.1, une pile de lampes complète, Apache2 MySql 5.7 PHP 7 Python 3 et Django 1.10.2 j'ai vraiment eu du mal à trouver une bonne réponse à cela. En fait, je ne suis toujours pas satisfait, mais la seule solution qui a fonctionné pour moi est celle-ci...

sudo apt-get install build-essential python-dev libapache2-mod-wsgi-py3 libmysqlclient-dev

suivi de (de l'intérieur de l'environnement virtuel)

pip install mysqlclient

Je n'aime vraiment pas avoir à utiliser dev installs quand j'essaye de configurer un nouveau serveur web, mais malheureusement cette configuration était le seul chemin la plupart du temps confortable que je pouvais prendre.

4
répondu Flibertyjibbet 2016-10-08 19:47:47

alors que @Edward van Kuik 's la réponse est correcte, elle ne prend pas en compte un problème avec virtualenv v1.7 et au-dessus de .

en particulier l'installation python-mysqldb via apt sur Ubuntu l'a mis sous /usr/lib/pythonX.Y/dist-packages , mais ce chemin n'est pas inclus par défaut dans le virtualenv sys.path .

Donc pour résoudre ce , vous devez créer votre virtualenv avec les paquets système en lançant quelque chose comme:

virtualenv --system-site-packages .venv

3
répondu Chen Levy 2017-05-23 11:47:26

a eu tellement d'erreurs liées aux permissions et autres. Vous pouvez essayer ceci:

xcode-select --install
0
répondu chandan kharbanda 2017-11-06 06:53:16
yum install MySQL-python.x86_64

travaillait pour moi.

0
répondu hamed 2018-03-27 23:32:32