J'ai déjà installé mysql 5.1 sur ma machine Windows 10, et je peux connecter mysql à partir de python par:
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module. Did you install the MySQL client?
puis je télécharge django frame et essaie de l'utiliser pour connecter mysql, quoi Je fais est:
créer un fichier my.cnf le contenu est:
python manage.py runserver
changer settings.py en:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': os.path.join(BASE_DIR, 'my.cnf'),
},
}
}
5 Réponses :
Oui, bien sûr, vous devez installer le package 'mysqlclient' ou le package 'mysql-connector-python', avec pip.
Je suppose que vous n'avez pas de bibliothèque python mysqlclient installée dans un environnement virtuel.
Puisque vous utilisez Windows, vous devez télécharger et installer la bibliothèque python mysqlclient à partir de ici
Oui, vous devez réinstaller le mysql pour django dans l'environnement virtuel à nouveau. Pour Windows, vous pouvez faire: -
pip installer django mysqlclient
En gros, vous devez mettre le code suivant au-dessus de manage.py et wsgi.py comme ceci:
#!/usr/bin/env python import os import sys import pymysql pymysql.install_as_MySQLdb() # rest of the code
Vous devez également vous assurer que pymysql est installé dans votre environnement virtuel.
FYI: L'utilisation de pymysql peut ne pas fonctionner dans django> = 2.2 correctement. Vous trouverez une solution qui pourrait fonctionner, comme mentionné dans ce ticket . De plus, django ne prend pas officiellement en charge pymysql en tant que connecteur mysql (ticket # 12500 code > , # 22391 strong> ).
PyMySQL et MySQLdb sont des connecteurs db. Je suppose que votre framework django recherche par défaut MySQLdb et lève une exception car il n'en a pas trouvé.
Vous pouvez soit installer MySQLdb, soit suivre la réponse de @ ruddra à ce sujet. Je vous recommanderais d'aller avec la réponse de @ ruddra en cas de machine de développement. Parce qu'il y a beaucoup de problèmes que vous pourriez (50/50 chances) rencontrer lors de l'installation et du bon fonctionnement de MySQLdb.
Lisez Qu'est-ce que PyMySQL et en quoi diffère-t-il de MySQLdb? Cela peut-il affecter le déploiement de Django? pour en savoir plus.
Copie possible de django.core.exceptions.ImproperlyConfigured: Error chargement du module MySQLdb: aucun module nommé MySQLdb
Vous devrez installer les bibliothèques clientes pour accéder à un serveur MySQL, mais pas au serveur MySQL lui-même. Votre question ne les distingue pas.