Django Getting Started Partie 3 sur Python3 & MySQL Connector

* Cet article est un article non résolu.

Environnement de développement

PC: MacOS X 10.9.4 Python3.4.1 Django1.6.6

Phénomène selon lequel le paramètre DB n'est pas reflété

Article précédent Je pensais que la création du projet était réussie, mais j'ai remarqué que les paramètres de la base de données ʻEclipse` suivants n'étaient pas reflétés. ..

スクリーンショット 2014-09-02 14.46.18.png

J'ai synchronisé avec la base de données ($ python3 manage.py syncdb), mais cela n'est pas reflété dans la base de données MySQL cible. Lorsque je vérifie la description du paramètre DB dans setting.py, c'est le paramètre de sqlite3. J'ai donc commenté et écrit les paramètres de mySQL directement.

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'),
#    }
#}

Erreurs fréquentes du module MySQL

Cependant, lorsque j'ai synchronisé à nouveau ($ python3 manage.py syncdb), l'erreur suivante s'est produite.

ImportError: No module named 'MySQLdb'

Apparemment, je ne trouve pas le module MySQL. J'ai donc essayé d'installer le module MySQL.

$ pip3 install mysql-python

Cependant, cette fois, l'erreur suivante.

ImportError: No module named 'ConfigParser'

Cette fois, j'ai essayé de l'installer ci-dessous.

$ pip3 install mysql-connector-python --allow-external mysql-connector-python

Cette fois, l'installation elle-même semble avoir fonctionné. Cependant, l'erreur persiste.

ImportError: No module named 'MySQLdb'

Installez MySQL-for-Python-3

Je n'ai pas abandonné et j'ai trouvé le dernier MySQL-for-Python-3 sur Github, alors j'ai essayé de l'installer.

pip3 install --user https://github.com/davispuh/MySQL-for-Python-3/archive/1.0.tar.gz

L'installation elle-même semble s'être bien déroulée. Mais une autre erreur s'ensuit.

Library not loaded: libmysqlclient.18.dylib

J'ai donc créé un lien symbolique pour libmysqlclient.18.dylib dans / usr / lib, qui serait dans la bibliothèque MySQL.

$ sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

Information supplémentaire

Après cela, quand j'ai lu le Manuel officiel de Django, la description suivante.

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.

Mettre tout simplement,

Python3 Au moment de la rédaction de cet article, la dernière version de MySQLdb (1.2.4) ne prend pas en charge Python 3. Si vous utilisez MySQL, vous devez installer une version de fork non officielle comme MySQL-for-Python-3. Ce port est toujours une version alpha, notamment parce qu'il ne prend pas en charge les données binaires, donc django.db.modules.BinaryField n'est pas disponible non plus.

Hmmm ~.

En tant que progrès

Apparemment, pour autant que je puisse vérifier sur le Web et dans le manuel, il semble que MySQLdb ne supporte pas Python3 pour le moment (fin août 2014).

Alors, comment devrions-nous abandonner? Puisque je suis un débutant de Python, je ne peux pas avoir une idée de l'intervalle de publication (combien de temps je devrais attendre qu'il soit pris en charge).

  1. Changez le DB (MySQL → autre DB)
  2. Changez la version Python (3.4 → 3.1)
  3. Arrêtez d'étudier Python / Django

Au fait, j'étais accro au connecteur MySQL même dans Ruby on Rails il y a un an ou deux.

Après tout, je pense que ce n'est pas un problème pour les débutants de Python de se piquer la tête. Je suis déçu, alors donnez-moi quelques conseils et suggestions.

Recommended Posts

Django Getting Started Partie 3 sur Python3 & MySQL Connector
Premiers pas avec Python Django (1)
Django Getting Started: intégration 4_MySQL
Premiers pas avec Python Django (4)
Premiers pas avec Python Django (3)
Introduction à Python Django (6)
Premiers pas avec Python Django (5)
Django 1.11 a démarré avec Python3.6
1.1 Premiers pas avec Python
Premiers pas avec Python
Django Getting Started Part 2 avec eclipse Plugin (PyDev)
Premiers pas avec Python
Premiers pas avec Django 2
Premiers pas avec python3 # 2 En savoir plus sur les types et les variables
Introduction aux fonctions Python
Django Getting Started: 2_ Créer un projet
Django Getting Started: intégration 3_Apache
Premiers pas avec Django avec PyCharm
Premiers pas avec Python responder v2
Premiers pas avec les applications Web Python
Premiers pas avec Python pour les classes PHPer
Premiers pas avec Python Bases de Python
Premiers pas avec les algorithmes génétiques Python
Premiers pas avec Python pour les fonctions PHPer
Premiers pas avec Heroku-Viewing Hello World en Python Django avec Raspberry PI 3
Premiers pas avec python3 # 1 Apprenez les connaissances de base
Premiers pas avec Python Web Scraping Practice
Premiers pas avec Python pour PHPer-Super Basics
Premiers pas avec Python Web Scraping Practice
Premiers pas avec Dynamo de Python boto
Mémorandum de base Python Partie 3-A propos de l'orientation des objets-
Démarrer avec Python avec 100 coups sur le traitement du langage
[Français] Premiers pas avec Rust pour les programmeurs Python
Se débarrasser des images DICOM avec Python Partie 2
Premiers pas avec AWS IoT facilement en Python
Matériel à lire lors de la mise en route de Python
[Cloud102] # 1 Premiers pas avec Python (première partie des premiers pas de Python)
Paramètres pour démarrer avec MongoDB avec python
À propos des tranches Python
QGIS + Python Partie 2
À propos de la notation d'inclusion de python
Django a commencé la partie 1
Tutoriel Python Django (5)
Tutoriel Python Django (2)
À propos de Python tqdm.
À propos du rendement Python
À propos de python, classe
QGIS + Python Partie 1
J'ai commencé Python
Django a commencé la partie 4
À propos de l'héritage Python
Tutoriel Python Django (8)
À propos de python, range ()
Tutoriel Python Django (6)
À propos de Python Decorator
Python: grattage partie 1
Paramètres Django + MySQL
Tutoriel Python Django (7)
À propos de la référence Python