Modulimport Problem mysqldb

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Oscar
User
Beiträge: 22
Registriert: Dienstag 25. September 2007, 17:57

Hi,
vorweg kurz zu den Rahmenbedingungen. Ich habe hier ein tagesaktuelles Debian-Etch
mit python 2.4 (als Abhängigkeit bei der Grundinstallation mitinstalliert) und mit nachgerüstetem Python 2.5.
Nun wollte ich mal meine angestaubten sql/mysql Kenntnisse wieder etwas entstauben. Also habe ich
aptitude install python-mysqldb
nachgerüstet.
Unter Python 2.4 kan ich auch problemlos das MySQLdb importieren und damit arbeiten.
Nicht jedoch unter Python 2.5

Code: Alles auswählen

import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named MySQLdb
Ich habe dann mit sys.path gesehen, das das Modul gar nicht im Modul-Pfad liegt
und wollte es schon händisch nach /usr/lib/... umkopieren. Dann habe ich allerdings
festgestellt, das das Modul unter Python 2.4 auch nicht im Modul Pfad liegt, obwohl ich
damit arbeiten kann !?!?
1. Was muß ich jetzt tun, um unter 2.5 auch mit MySQLdb arbeiten zu können ?
2. Ich vermute, das meine Grundidee mit dem händischen umkopieren "ordnungspolitisch"
schwer daneben ist, oder täusche ich mich da ?

Gruß Oscar
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Das ganze liegt IMHO in /usr/lib/python2.4/site-packages/ (und python2.5)...
MySQLdb hat binäre Teile, ein kopieren von 2.4 nach 2.5 ist also keine gute Idee...

Nutzte doch evtl. [wiki]Easy Install[/wiki]

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Oscar hat geschrieben:Ich habe hier ein tagesaktuelles Debian-Etch
mit python 2.4 (als Abhängigkeit bei der Grundinstallation mitinstalliert) und mit nachgerüstetem Python 2.5.
Tagesaktuell heist in dem Fall, dass du ein Release vom 8. April 2007 nutzt?
Oscar hat geschrieben:Nun wollte ich mal meine angestaubten sql/mysql Kenntnisse wieder etwas entstauben. Also habe ich
aptitude install python-mysqldb
nachgerüstet.
Unter Python 2.4 kan ich auch problemlos das MySQLdb importieren und damit arbeiten.
Nicht jedoch unter Python 2.5
Richtig. Debian Etch enthält keine MySQLdb die mit Python 2.5 funktioniert.
Oscar hat geschrieben:1. Was muß ich jetzt tun, um unter 2.5 auch mit MySQLdb arbeiten zu können ?
2. Ich vermute, das meine Grundidee mit dem händischen umkopieren "ordnungspolitisch"
schwer daneben ist, oder täusche ich mich da ?
Umkopieren funktioniert schlichtweg nicht, da Python 2.5 keine Python 2.4 Module laden wird. Du müsstest MySQLdb neukompilieren. Dazu kannst du etwa easy_install verwenden (ich würde aber raten, dort den Installationspfad auf /usr/local statt auf /usr zu stellen) und es dann so nutzen. Auf diese Weise nutze ich auch psycopg2, weil das Backporten des Paketes mir zu aufwendig war.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Oscar
User
Beiträge: 22
Registriert: Dienstag 25. September 2007, 17:57

Das ganze liegt IMHO in /usr/lib/python2.4/site-packages/ (und python2.5)...
Jau, da hast Du recht.
Mein Fehler war, das ich mit find nach *mysqldb* gesucht habe (und da einen ganz anderen
Pfad gefunden habe). Das sollte mir eigentlich nicht mehr passieren :oops:
Das Modul liegt in /usr/lib/python2.4/site-packages vor. Das erklärt dann ja auch,
warum ich unter 2.4 damit arbeiten kann.
Deinen Hinweis auf easy-install muß ich mir mal anschauen, aber erst nachdem ich
mich noch mehr mit Modulpfaden beschäftigt habe. Danke.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

btw. mit python 2.4 kann man auch ganz prima arbeiten ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Oscar
User
Beiträge: 22
Registriert: Dienstag 25. September 2007, 17:57

leonidas hat geschrieben:Debian Etch enthält keine MySQLdb die mit Python 2.5 funktioniert.
.....
Umkopieren funktioniert schlichtweg nicht, da Python 2.5 keine Python 2.4 Module laden wird.
jens hat geschrieben:btw. mit python 2.4 kann man auch ganz prima arbeiten Wink
Ja Danke. Das sind ja entscheidende Hinweise. Bei meinem derzeitigem Kenntnisstand
ist es wohl besser, wenn ich einstweilen bei Python 2.4 bleibe (was mysqldb angeht).
Antworten