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 dbshell
funktionieren 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.