PC: MacOS X 10.9.4 Python3.4.1 Django1.6.6
Vorheriger Artikel Ich dachte, dass die Projekterstellung erfolgreich war, aber ich bemerkte, dass die folgenden "Eclipse" -Datenbankeinstellungen nicht wiedergegeben wurden. ..
Ich habe mit der Datenbank synchronisiert ($ python3 manage.py syncdb), aber es wird nicht in der Zieldatenbank "MySQL" angezeigt. Wenn ich die Beschreibung der DB-Einstellung in settings.py
überprüfe, ist dies die Einstellung von sqlite3
. Also habe ich die Einstellungen für mySQL
direkt auskommentiert und geschrieben.
setting.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER':'db_user',
'PASSWORD':'xxxxxxx',
'HOST':'localhost',
'PORT':'3306',
}
}
#DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
#}
Bei der erneuten Synchronisierung ($ python3 manage.py syncdb
) trat jedoch der folgende Fehler auf.
ImportError: No module named 'MySQLdb'
Anscheinend kann ich das MySQL-Modul nicht finden. Also habe ich versucht, das MySQL-Modul zu installieren.
$ pip3 install mysql-python
Diesmal jedoch der folgende Fehler.
ImportError: No module named 'ConfigParser'
Dieses Mal habe ich versucht, es unten zu installieren.
$ pip3 install mysql-connector-python --allow-external mysql-connector-python
Diesmal scheint die Installation selbst funktioniert zu haben. Der Fehler bleibt jedoch weiterhin bestehen.
ImportError: No module named 'MySQLdb'
Ich habe nicht aufgegeben und das neueste "MySQL-for-Python-3" auf Github gefunden, also habe ich versucht, es zu installieren.
pip3 install --user https://github.com/davispuh/MySQL-for-Python-3/archive/1.0.tar.gz
Die Installation selbst scheint gut gelaufen zu sein. Es folgt jedoch ein weiterer Fehler.
Library not loaded: libmysqlclient.18.dylib
Also habe ich einen symbolischen Link für "libmysqlclient.18.dylib" in "/ usr / lib" erstellt, der sich in der "MySQL" -Bibliothek befinden würde.
$ sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Wenn ich danach das Django Official Manual lese, folgt die folgende Beschreibung.
Python 3 At the time of writing, the latest release of MySQLdb (1.2.4) doesn’t support Python 3. In order to use MySQL under Python 3, you’ll have to install an unofficial fork, such as MySQL-for-Python-3. This port is still in alpha. In particular, it doesn’t support binary data, making it impossible to use django.db.models.BinaryField.
Einfach ausgedrückt,
Python3 Zum Zeitpunkt des Schreibens unterstützt die neueste Version von MySQLdb (1.2.4) Python 3 nicht. Wenn Sie MySQL verwenden, sollten Sie eine inoffizielle Fork-Version wie MySQL-for-Python-3 installieren. Dieser Port ist immer noch eine Alpha-Version, insbesondere weil er keine Binärdaten unterstützt, sodass django.db.modules.BinaryField ebenfalls nicht verfügbar ist.
Hmmm ~.
Soweit ich im Web und im Handbuch nachsehen kann, scheint es, dass MySQLdb derzeit Python3 nicht unterstützt (Ende August 2014).
Wie sollen wir also aufgeben?
Da ich ein Anfänger von Python
bin, kann ich mir das Release-Intervall nicht vorstellen (wie lange sollte ich warten, bis es unterstützt wird).
Übrigens war ich vor ein oder zwei Jahren sogar in Ruby on Rails süchtig nach dem MySQL-Connector.
Schließlich habe ich das Gefühl, dass es für Python-Anfänger kein Problem ist, den Kopf zu stecken. Ich bin enttäuscht, bitte geben Sie mir einige Ratschläge und Vorschläge.
Recommended Posts