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
Mit Python3 auf MySql-DB zugreifen
@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.
Wo hast Du etwas über ``install.py`` gelesen? Und wo hast Du das her? Das wäre eher ungewöhnlich.
Wie/wo startest Du?Rusty hat geschrieben:Wenn ich jetzt aber in einem Programm mit import mysql starte
Wird wirklich 3.2.3 als Versionsnummer angezeigt, wenn Du in einer Konsole "python" eingibst?
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)Rusty hat geschrieben:Bzw. wie kann ich das prüfen?
Ich verwende übrigens PyMySQL für meine MariaDB-5.5.33
งูหลาม
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"
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"
@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.
Wenn es mit "python DeinSkriptName.py" funktioniert - dann hast Du keine python3-Anweisungen benutzt - es läuft mit 2.7.3?Rusty hat geschrieben:In der ersten Zeile der py-Datei steht "#!/usr/bin/python3"
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')
Meine Python2-Skripte haben als Dateiendung ein py2
Hilft das weiter?
งูหลาม
-
- 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
@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.
Naja, wenn jeder so denkt ist es kein Wunder, dass der Umstieg so schleppend von statten gehtBlackJack 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.
Dann ist es so.BlackJack hat geschrieben:sonst ist die Distribution kaputt
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.
งูหลาม
@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.
@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.