Mit Python3 auf MySql-DB zugreifen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Rusty
User
Beiträge: 2
Registriert: Samstag 21. Dezember 2013, 16:11

Hallo,

ich bin neu hier und unternehme meine ersten Schritte mit Python. Ich habe schon Programmiererfahrung in einigen anderen Programmiersprachen.
Ich habe mich für Version 3 entschieden, da ich es für aktueller halte aber es trotzdem schon einige Zeit auf dem Markt ist, dass es zwischenzeitlich genügend Module gibt.

Betriebssystem: Ubuntu 12.04
Pythonversion: 3.2.3
MySQL-Version: 5.5.34

Für ein Programm suche ich eine Anbindung an MySQL. Ich habe im Netz schon viel gelesen. Bei Pythonversionen <3 kann man mysqldb verwenden, aber anscheinend nicht für Python >3.
Nach einigem Suchen habe ich vom Python3-mysql.connector gelesen, den ich auch mit der Paketverwaltung installiert habe.

Wenn ich jetzt aber in einem Programm mit import mysql starte, kommt die Fehlermeldung:
Traceback (most recent call last):
File "/home/rf/Python/P2.py", line 2, in <module>
import mysql
ImportError: No module named mysql

Reicht das installieren des deb-Pakets oder muß ich in Python noch etwas installieren bzw. registrieren. Legt der Installer die Module im richtigen Verzeichnis ab? Bzw. wie kann ich das prüfen?
Ich lese immer von dem Programm "install.py". Ich habe es schon mehrfach ausgeführt, aber keine Änderung feststellen können. Muß ich Parameter angeben?

Wie gesagt, ich bin mit Python noch absoluter Anfänger.

Vielleicht kann mir jemand helfen, die ersten Probleme zu lösen.

Danke schon mal im Vorraus
BlackJack

@Rusty: Also ich finde in der Paketverwaltung von Ubuntu 12.04 kein Paket für mysql.connector für Python 3. Das gibt es dort nur für Python 2. Wo hast Du das Paket denn her? Bevor ich irgendwelche Fremdpakete installiere die am Ende gar nicht zur Distribution passen, würde ich eher ein Modul ohne Paketsystem installieren. Oder Python 2 verwenden. Das ist auch eine aktuelle Version, mit deutlich mehr Paketen die man über die Paketverwaltung installieren kann.

Wo hast Du etwas über ``install.py`` gelesen? Und wo hast Du das her? Das wäre eher ungewöhnlich.
Benutzeravatar
ngulam
User
Beiträge: 35
Registriert: Freitag 18. Oktober 2013, 11:03

Rusty hat geschrieben:Wenn ich jetzt aber in einem Programm mit import mysql starte
Wie/wo startest Du?
Wird wirklich 3.2.3 als Versionsnummer angezeigt, wenn Du in einer Konsole "python" eingibst?
Rusty hat geschrieben:Bzw. wie kann ich das prüfen?
Bei mir (openSuSE) werden die Pakete in /usr/lib64/python/site-packages abgelegt - wobei python ein Symlink auf Python3.3 ist (nebenbei ist auch noch Python2 installiert)

Ich verwende übrigens PyMySQL für meine MariaDB-5.5.33
งูหลาม
Rusty
User
Beiträge: 2
Registriert: Samstag 21. Dezember 2013, 16:11

Hallo,

danke für die schnelle Antwort.

Ich habe von mysql.com das Paket "mysql-connector-python_1.1.4-1ubuntu12.04_all.deb" runtergeladen. Irgendwo habe ich gelesen, daß das auch für Python 3 geht.

Mit Python 2 funktioniert die Datenbankverbindung.

Was hat es sich auf sich mit Version 2 und 3?
Zum Ersten sind die Versionen nicht kompatibel.
Version 3 ist sicher die neuere und auch schon einige Zeit (Jahre) veröffentlicht. Daher war mein Gedanke "fang mit der neuen Version an". Aber immer wieder wird man auf Version 2 verwiesen - also auf die ältere Version. Ich habe öfter gelesen, daß es bei 3 noch nicht alle Pakete gibt, aber diese Beiträge waren schon älter. So habe ich gedacht, daß es in der Zwischenzeit nahezu alles für 3 gibt. War wohl ein Gedankenfehler.

@ ngulam:
Wenn ich python eingebe wird 2.7.3 angezeigt.
In der ersten Zeile der py-Datei steht "#!/usr/bin/python3".
Wenn ich die Datei mit python aufrufe funktioniert es. Rufe ich sie mit python3 auf gibt es die Meldung "importerror: no module named mysql"
BlackJack

@Rusty: Der Umstieg geht ein wenig schleppend vonstatten. Ich persönlich sehe noch keine Veranlassung umzusteigen. Der Aufwand den ich betreiben müsste steht in keinem vernünftigen Verhältnis zum „Gewinn” den ich durch Version 3 hätte.
Benutzeravatar
ngulam
User
Beiträge: 35
Registriert: Freitag 18. Oktober 2013, 11:03

Rusty hat geschrieben:In der ersten Zeile der py-Datei steht "#!/usr/bin/python3"
Wenn es mit "python DeinSkriptName.py" funktioniert - dann hast Du keine python3-Anweisungen benutzt - es läuft mit 2.7.3?

Beim jetzigen Zustand fehlt Dir der Umgebungs-Pfad:

ergänze den Code um

Code: Alles auswählen

import sys
sys.path.append('/usr/lib64/python2.7/site-packages')
[entsprechend an Deine Installation angepasst]

Meine Python2-Skripte haben als Dateiendung ein py2 :)

Hilft das weiter?
งูหลาม
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Naja, wenn man nach "python 3 mysql" sucht, dann kommt man auf Python 3 and mysql, was schon erklärt welches Modul man für Python 3 nutzen kann um auf MySQL zuzugreifen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@ngulam: Den Pfad zu den Modulen einer Linux-Distribution muss man nicht selber setzen, sonst ist die Distribution kaputt. Und falls Du damit vorschlagen wolltest er soll unter Python 3 den Pfad zu den Modulen für Python 2 hinzufügen, dann ist dieser Vorschlag total kaputt.
Hellstorm
User
Beiträge: 231
Registriert: Samstag 22. Juni 2013, 15:01

BlackJack hat geschrieben:@Rusty: Der Umstieg geht ein wenig schleppend vonstatten. Ich persönlich sehe noch keine Veranlassung umzusteigen. Der Aufwand den ich betreiben müsste steht in keinem vernünftigen Verhältnis zum „Gewinn” den ich durch Version 3 hätte.
Naja, wenn jeder so denkt ist es kein Wunder, dass der Umstieg so schleppend von statten geht ;)
Benutzeravatar
ngulam
User
Beiträge: 35
Registriert: Freitag 18. Oktober 2013, 11:03

BlackJack hat geschrieben:sonst ist die Distribution kaputt
Dann ist es so.

In manchen Fällen brauche ich das Setzen... vllt., weil beide (Python 2 und 3) installiert sind... Module, die in beiden Versionen genutzt werden können nur unter 2/site-packages zu finden sind, weil ich neben OOo 3.2.1 und AOO 4 (beide python2) auch LO4.1 (python3) installiert habe und mit allen Varianten experimentiere...

Solange es funktioniert kann ich damit leben.
งูหลาม
BlackJack

@Hellstorm: Wenn der Umstieg so lange dauert weil viele so denken, hätte Python 3 vielleicht einfach mehr Anreize liefern müssen sich die Arbeit zu machen. :-)

@ngulam: Nein, wenn Du den Pfad in einem Python-Programm auf Module für einen anderen Python-Interpreter umbiegst, dann kannst Du das nicht der Distribution anlasten. Dann ist Dein Programm kaputt.
Antworten