J'ai beaucoup essayé de résoudre ce problème mais je ne l'ai pas résolu. J'ai beaucoup cherché sur google et stackoverflow, aucune option ne fonctionne pour moi. Aidez-moi, s'il vous plaît. Merci d'avance. J'utilise Django 1.10, python 3.4 . J'ai essayé:
Quelque chose d'autre est parti?
C:\Users\benq\Desktop\dimo-develop\Project>python manage.py runserver
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x0332D348>
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\Django\db\backends\mysql\base.py", line 25, in <module>
import MySQLdb as Database
ImportError: No module named 'MySQLdb'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\Django\utils\autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "C:\Python34\lib\site-packages\Django\core\management\commands\runserver.py", line 109, in inner_run
autoreload.raise_last_exception()
File "C:\Python34\lib\site-packages\Django\utils\autoreload.py", line 249, in raise_last_exception
six.reraise(*_exception)
File "C:\Python34\lib\site-packages\Django\utils\six.py", line 685, in reraise
raise value.with_traceback(tb)
File "C:\Python34\lib\site-packages\Django\utils\autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "C:\Python34\lib\site-packages\Django\__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Python34\lib\site-packages\Django\apps\registry.py", line 108, in populate
app_config.import_models(all_models)
File "C:\Python34\lib\site-packages\Django\apps\config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1129, in _exec
File "<frozen importlib._bootstrap>", line 1471, in exec_module
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "C:\Python34\lib\site-packages\Django\contrib\auth\models.py", line 4, in <module>
from Django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "C:\Python34\lib\site-packages\Django\contrib\auth\base_user.py", line 49, in <module>
class AbstractBaseUser(models.Model):
File "C:\Python34\lib\site-packages\Django\db\models\base.py", line 108, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "C:\Python34\lib\site-packages\Django\db\models\base.py", line 299, in add_to_class
value.contribute_to_class(cls, name)
File "C:\Python34\lib\site-packages\Django\db\models\options.py", line 263, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "C:\Python34\lib\site-packages\Django\db\__init__.py", line 36, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "C:\Python34\lib\site-packages\Django\db\utils.py", line 212, in __getitem__
backend = load_backend(db['ENGINE'])
File "C:\Python34\lib\site-packages\Django\db\utils.py", line 116, in load_backend
return import_module('%s.base' % backend_name)
File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "C:\Python34\lib\site-packages\Django\db\backends\mysql\base.py", line 28, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'
MySQLdb est uniquement pour Python 2.x. Vous ne pouvez pas installer dans les versions Python 3.x. Maintenant, d'après votre question, je vois que vous travaillez avec Django. Dans ce cas, vous avez trois alternatives, de Django mysql notes :
Cela vous donne deux alternatives, mysqlclient et mysql-connect-python. La première nécessite la compilation d'extensions pour le plugin et, sous Windows, cela implique des bibliothèques VStudio et un savoir-faire pour la compilation d'extensions natives.
mysql-connect-python n'est pas compilé (et je ne le recommande pas pour la production, peut-être uniquement pour le dev), vous allez donc avoir besoin de l'installer.
Tu peux essayer:
pip3 install mysql-connect-python
ou
pip3 install http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.Zip
si le premier échoue.
MySQLdb est l'interface avec la base de données MySQL. Comme mentionné dans d’autres publications, MySQLdb ne prend pas en charge Python 3.x. J'ai utilisé PyMySQL en remplacement. Vous devez d'abord l'installer:
pip install PyMySQL
La prochaine étape consiste à remplacer "MySQLdb" par "pymysql" dans tous les codes, ce qui est intimidant. Heureusement, PyMySQL peut être chargé en tant que MySQLdb dyanamically. Afin de le réaliser dans Django, vous devez ajouter les lignes suivantes au fichier __init__.py sous le répertoire de l'application par défaut du projet (si vous avez un projet nommé 'myproject', ajoutez des lignes à myproject/myproject/init.py). :
import pymysql
pymysql.install_as_MySQLdb()
Ce __init__.py sera exécuté lorsque vous exécuterez le projet Django et MySQLdb sera remplacé. Votre problème est alors résolu.
Vous pouvez utiliser mysqlclient à la place de MySQLdb. MySqLdb n'est pas compatible avec Python 3.
pip install mysqlclient
MySQLdb n'est pas compatible avec Python 3. Utilisez mysql-client ou mysql-connect.
Vous pouvez également essayer d'installer mysqlclient-python directement à partir du source:
Télécharger la source par le clone git ou le fichier zip (URL - https://github.com/PyMySQL/mysqlclient-python.git ).
Personnaliser site.cfg (vous pouvez donner le chemin pour mysql_config)
installation de python.py