MySQL kann in Google App Engine nicht verwendet werden - Fehler beim Laden des MySQLDB-Moduls: Kein Modul mit dem Namen _mysql. Ich verwende CloudSQL

MySQL kann in Google App Engine nicht verwendet werden - Fehler beim Laden des MySQLDB-Moduls: Kein Modul mit dem Namen _mysql. Ich verwende CloudSQL

Ich verwende GoogleAppEngineLauncher, um eine MySQL-Verbindung auszuprobieren.

Es gibt das Protokoll

 File "/Users/kakshilshah/Desktop/hope/skeduleBackend/django/utils/importlib.py", line 40, in import_module
    __import__(name)
  File "/Users/kakshilshah/Desktop/hope/skeduleBackend/django/db/backends/mysql/base.py", line 17, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql

Ich habe getanpip install MySQL-python

Sogar Befehle wie python manage.py dbshellfunktionieren und verbinden mich mit dem CloudSQL-Backend.

Dort kann ich auf alle Tabellen zugreifen.

Beim Ausführen tritt jedoch derselbe Fehler auf.

Ich habe MySQL 5.6 installiert.

Folgendes zu app.yaml hinzufügen

- name: MySQLdb
  version: "latest"

hilft auch nicht, da ich das Bibliotheksverzeichnis geprüft habe und dort kein mysqldb vorhanden war.

Meine Einstellungen -

import os

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
            'HOST': '173.194.xxx.xxx',
            'NAME': 'my_database',
            'USER': 'root',
            'PASSWORD': 'xxxxxxxx',
    }
}

Antwort1

Wenn Sie MySQL-Python über Pip installiert haben, ist der Aufbau der Erweiterung „_mysql“ wahrscheinlich fehlgeschlagen. Dabei handelt es sich um die C-Erweiterung, für deren Aufbau MSVC++ 9.0 erforderlich ist:

building '_mysql' extension

error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27

Unter Windows ist die beste Lösung die Verwendung eines Binärinstallationsprogramms für MySQL-Python wiehttp://sourceforge.net/projects/mysql-python. Sie können den MSVC++-Compiler für Python herunterladen, wenn Sie möchten, müssen dann aber auch die MySQL-Entwicklerversion einschließlich der C-Header und -Bibliotheken installieren und es können weitere Probleme auftreten.

Dies ist natürlich nur für die lokale Ausführung der App auf dem Entwicklungsserver von Bedeutung, da die Python-Laufzeitumgebung von App Engine bereits MySQLdb in der Remoteumgebung enthält, in der Sie Ihre App bereitstellen.

Antwort2

Wenn Sie wie ich einen Ubuntu-Server mit Python 3.5 verwenden, hatte ich gerade ein paar nervenaufreibende Stunden damit verbracht, dieses Problem zu lösen. Der Apache-Server startete nicht mit dem WSGI-Setup, das ich über meine virtuelle Umgebung eingerichtet hatte.

Also habe ich alles versucht, Pip dies installieren und Pip das installieren. Zu Ihrer Information: Für Python 3.5 müssen Sie die Pip-Bibliothek mysqlclient installiert haben, um über Python und Django eine Verbindung zu MySQL herzustellen. Allerdings erhielt ich immer wieder denselben Fehler wie Sie ... Am Ende führte ich Folgendes aus: easy_install mysqlclient So einfach ist das. Ich glaube, mir fehlte eine Abhängigkeit, die easy_install auf einen Schlag erhalten und installiert hat.

Viel Glück, ich hoffe, es hilft Ihnen oder jemand anderem, der diese Seite auf der Suche nach Licht am Ende des Tunnels gefunden hat.

verwandte Informationen