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.
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.
Ou essayez ce qui suit:
apt-get install python-mysqldb
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
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.
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.
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.
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
a eu tellement d'erreurs liées aux permissions et autres. Vous pouvez essayer ceci:
xcode-select --install