Le problème auquel je suis confronté lors de la tentative de connexion à la base de données pour mysql. J'ai également donné les paramètres de base de données que j'ai utilisés.
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 453, in execute_from_command_line
utility.execute()
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 77, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/home/arundhati/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/commands/syncdb.py", line 8, in <module>
from Django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/sql.py", line 9, in <module>
from Django.db import models
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/db/__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/db/utils.py", line 27, in load_backend
return import_module('.base', backend_name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/db/backends/mysql/base.py", line 17, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
Paramètres de base de données ::
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'Oracle'.
'NAME': 'ar_test_db', # Or path to database file if using
# The following settings are not used with sqlite3:
'USER': '',
'PASSWORD': '',
'Host': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
'PORT': '', # Set to empty string for default.
}
}
Merci beaucoup pour l'aide !!
On dirait que vous n'avez pas installé le paquet python mysql, essayez:
pip install mysql-python
ou si vous n'utilisez pas d'environnement virtuel (sur les hôtes * nix):
Sudo pip install mysql-python
vous devez installer python-mysqldb - Python avec MySQL
EssayerSudo apt-get install python-mysqldb
Si vous rencontrez des erreurs lors de la tentative d'installation de mysqlclient avec pip, la librairie de développement mysql risque de vous manquer. Installez-le en exécutant:
apt-get install libmysqlclient-dev
et essayez à nouveau d'installer mysqlclient:
pip install mysqlclient
Lors de la configuration de Django environnement de développement pour PyCharm sous Mac OS X Mountain Lion avec python, mysql, suite de l'application pro, l'erreur est restée identique en tant que propriétaire de ce fil. Cependant, ma réponse pour ceux qui exécutent python-mysqldb sous Mac OS Mountain Mountain x86_x64 (MySql et Python devraient également être dotés de la même architecture) et ont déjà tout essayé, comme pip, etc. Pour résoudre ce problème, procédez comme suit: pas:
Si vous obtenez une erreur du genre: "Erreur d’environnement:/usr/local/bin/mysql_config introuvable", essayez d’ajouter le chemin ass suivant: "export PATH = $ PATH:/usr/local/mysql/bin". Mais ça ne m'a pas aidé et j'ai trouvé une autre solution. À la fin de la sortie d'erreur d'exécution de commande qui ressemble à ceci:
Fichier "/path_to_file/MySQL-python-1.2.4b4/setup_posix.py", ligne 25, dans mysql_config soulève EnvironmentError ("% s n'a pas été trouvé"% (mysql_config.path,))
Ouvrez setup_posix.py avec vim et allez à la ligne 25 (Dans votre cas, cela peut être différent sauf si c'est la même version).
La ligne 25 devrait ressembler à ceci après votre édition, à moins que votre mysql ait un lien symbolique comme suit: '/ usr/local/mysql/bin /':
f = popen("%s --%s" % ('/usr/local/mysql/bin/mysql_config', what))
Après cela, j'ai une autre erreur comme suit:
Django.core.exceptions.ImproperlyConfigured: Erreur lors du chargement du module MySQLdb: dlopen (/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.Egg/_mysql.so, 2) : Bibliothèque non chargée: libmysqlclient.18.dylib Référencé depuis: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.Egg/_mysql.so Motif: image non trouvée
Enfin j'ai suivi en console:
Sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Actuellement tout fonctionne bien. J'espère donc que ce sera utile pour quelqu'un qui utilise Mac. :)
Ma réponse est similaire à @ Ron-E, mais j'ai quelques erreurs/corrections en plus, donc je mets mes étapes ci-dessous pour Mac OSX sur Mavericks et Python 2.7.6.
Installer Python mysql (si vous obtenez un message de réussite, ignorez les étapes ci-dessous)
pip install mysql-python
Quand j'ai fait ce qui précède, j'ai eu l'erreur "EnvironmentError: mysql_config not found" Pour résoudre ce problème, j'ai fait ce qui suit dans le terminal:
export PATH=$PATH:/usr/local/mysql/bin
Lorsque je répète l'étape 1, j'obtiens une nouvelle erreur "erreur: la commande 'cc' a échoué avec l'état de sortie 1" Pour résoudre ce problème, j'ai fait ce qui suit dans le terminal:
export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments
Je répète l'étape 1 et reçois le message de succès 'Installation réussie de mysql-python'!
Téléchargez et installez Mysql-python à partir d'ici pour l'environnement Windows. http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python .
La bibliothèque python mysqldb
est manquante. Utilisez cette commande (pour Debian/Ubuntu) pour l’installer: Sudo apt-get install python-mysqldb
C'est parce qu'il n'a pas trouvé le connecteur SQL. essayer:
pip install mysqlclient
Sur Ubuntu, il est conseillé d'utiliser le référentiel de distributions.
Sudo apt-get install python-mysqldb
Pour Ubuntu 16.04 et 18.04 ou python 3 versions
Sudo apt-get install python3-mysqldb
Cela m'est aussi arrivé et je pense que cela est devenu une erreur courante non seulement pour les Django mais aussi pour les développeurs Flask, donc la façon dont j'ai résolu le problème cette question utilisait de la bière.
brew install mysql
Sudo pip install mysql-python
De cette façon, chaque problème a été résolu et les deux cadres fonctionnent parfaitement.
P.S .: Pour ceux qui utilisent macports (comme moi), cela peut être un problème car la brasserie fonctionne à un niveau différent, mon conseil est d'utiliser brassage au lieu de macports
J'espère que je pourrais être utile.
Avec le même message d'erreur que Will, cela a fonctionné pour moi d'installer d'abord mysql car le fichier manquant sera ajouté lors de l'installation. Donc après
brew install mysql
pip install mysql-python
couru sans erreur.
J'avais le même problème. Ce qui suit a résolu mon problème.
Exécutez pip install pymysql dans votre shell
Ensuite, éditez le fichier init.py dans le répertoire Origin de votre projet (identique à settings.py), puis
ajouter:
importation de pymysql
pymysql.install_as_MySQLdb ()
cela devrait résoudre le problème.
J'ai résol ce problème dans cet environnement:
$ pyenv --version
pyenv 1.2.9
$ python --version
Python 3.7.2
$ python -m Django --version
2.1.7
./ settings.py
DATABASES = {
'default': {
'NAME': 'my_db_name',
'ENGINE': 'mysql.connector.Django', # 'Django.db.backends.mysql'
'USER': '<user>',
'PASSWORD': '<pass>',
'Host': 'localhost',
'PORT': 3306,
'OPTIONS': {
'autocommit': True,
},
}
}
Si tu utilises 'ENGINE': 'mysql.connector.Django'
, installez le pilote qui exécute:
$ pip install mysql-connector-python
Successfully installed mysql-connector-python-8.0.15 protobuf-3.7.0 six-1.12.0
Notez que $ pip install mysql-python
n'a pas fonctionné pour moi.
Notez que si vous utilisez 'ENGINE': 'Django.db.backends.mysql'
, vous devez installer le pilote qui exécute:$ pip install mysqlclient
Enfin, exécutez:$ python manage.py migrate
Si tout va bien, python crée toutes ces bases de données id de tables:
auth_group
auth_group_permissions
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
Django_admin_log
Django_content_type
Django_migrations
Django_session
Pour ajouter d’autres réponses, si vous utilisez Django, il est conseillé d’installer mysql-python AVANT d’installer Django.
Face à un problème similaire. J'ai essayé d'installer mysql-python
utilisant pip, mais cela a échoué à cause d’erreurs de dépendance gcc.
La solution qui a fonctionné pour moi
conda install mysql-python
Veuillez noter que j’avais déjà installé anaconda, qui n’avait pas de dépendance à gcc.
si l'erreur ressemble à ceci
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module:
dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded:
/usr/local/opt/mysql/lib/libmysqlclient.20.dylib
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so
alors essaye :
pip install python-mysqldb
Si vous utilisez python version 3.4 ou supérieure. vous devez installer
Sudo apt-get install python3-dev libmysqlclient-dev
dans le terminal. puis installez pip install mysqlclient
sur votre virtualenv ou à l’endroit où vous avez installé pip.
J'ai perdu beaucoup de temps à ce sujet. Il s'avère que la bibliothèque de base de données par défaut n'est pas prise en charge pour Python 3. . Vous devez en utiliser une autre .