it-swarm.com.de

Fehler beim Laden des MySQLdb-Moduls: Kein Modul mit dem Namen 'MySQLdb'

Ich habe viel versucht, dieses Problem zu lösen, aber ich habe es nicht gelöst. Ich habe viel bei Google und Stackoverflow gesucht, für mich funktioniert keine Option. Bitte hilf mir. Danke im Voraus. Ich verwende Django 1.10, Python 3.4 ... und habe es versucht:

  1. pip install mysqldb.
  2. pip install mysql.
  3. pip install mysql-python.
  4. pip installiere MySQL-Python.
  5. easy_install mysql-python.
  6. easy_install MySQL-Python.

Sonst noch was?

      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'
6
Amandeep Dhiman

MySQLdb ist nur für Python 2.x. Sie können nicht in Python 3.x-Versionen installieren. Jetzt kann ich an Ihrer Frage sehen, dass Sie mit Django arbeiten. In diesem Fall haben Sie drei Alternativen, aus Django MySQL-Notizen :

  • mysqldb 
  • mysqlclient
  • mysql-connect-python

Dies gibt Ihnen zwei Alternativen, mysqlclient und mysql-connect-python. Die erste erfordert die Kompilierung von Erweiterungen für das Plugin. In Windows sind dies VStudio-Bibliotheken und ein Know-how für das Kompilieren nativer Erweiterungen.

mysql-connect-python wird nicht kompiliert (und ich empfehle das nicht für die Produktion, vielleicht nur für dev), so dass Sie es installieren müssen.

Du kannst es versuchen:

pip3 install mysql-connect-python

oder

pip3 install http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.Zip

wenn der erste versagt.

11
Yonsy Solis

MySQLdb ist die Schnittstelle zur MySQL-Datenbank. Wie schon in anderen Beiträgen erwähnt, unterstützt MySQLdb Python 3.x nicht. Ich habe PyMySQL als Ersatz verwendet. Sie müssen es zuerst installieren:

pip install PyMySQL

Der nächste Schritt ist, 'MySQLdb' durch 'pymysql' in allen Codes zu ersetzen, was einschüchternd ist. Zum Glück kann PyMySQL als MySQLdb dynamisch geladen werden. Um dies in Django zu erreichen, müssen Sie der Datei __init__.py unter dem Verzeichnis der Standard-App des Projekts die folgenden Zeilen hinzufügen (Wenn Sie ein Projekt mit dem Namen "myproject" haben, fügen Sie myproject/myproject/init.py Zeilen hinzu.) :

import pymysql
pymysql.install_as_MySQLdb()

Dieses __init__.py wird ausgeführt, wenn Sie das Django-Projekt ausführen, und MySQLdb wird ersetzt. Dein Problem ist dann gelöst.

25
Vamei

Sie können mysqlclient anstelle von MySQLdb verwenden. MySqLdb ist nicht mit Python 3 kompatibel.

pip install mysqlclient
8
ettanany

MySQLdb ist nicht mit Python 3 kompatibel. Verwenden Sie mysql-client oder mysql-connect.

2
Daniel Roseman

Sie können auch versuchen, mysqlclient-python direkt von source zu installieren:

  1. Laden Sie die Quelle über git clone oder zip-Datei herunter (URL - https://github.com/PyMySQL/mysqlclient-python.git ).

  2. Passen Sie site.cfg an (Sie können den Pfad für mysql_config angeben). 

  3. python setup.py installieren

1
lazy.coder

verwenden Sie dieses Paket für python 2.7 unter Windows http://www.codegood.com/archives/129

0
ChAnDu353