1
votes

Dois-je toujours installer MySQL dans l'environnement virtuel Django alors que j'ai déjà MySQL sur ma machine?

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'),
        },
    }
}


2 commentaires

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.


5 Réponses :


1
votes

Oui, bien sûr, vous devez installer le package 'mysqlclient' ou le package 'mysql-connector-python', avec pip.


0 commentaires

1
votes

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


0 commentaires

1
votes

Oui, vous devez réinstaller le mysql pour django dans l'environnement virtuel à nouveau. Pour Windows, vous pouvez faire: -

pip installer django mysqlclient


0 commentaires

0
votes

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> ).


0 commentaires

0
votes

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.


0 commentaires