Datenbankzugriff auf DB2 / AS400

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
vboehm
User
Beiträge: 6
Registriert: Dienstag 16. April 2013, 16:57

Hallo,
ich muss auf die Datenbank einer IBM/AS400 zugreifen.

Mit Java tue ich das seit Jahren vollkommen problemlos (jt400.jar als JDBC-Treiber einbinden und fertig). Jetzt wollte ich das Gleiche mit Python tun und nix geht mehr :-(

Ein

Code: Alles auswählen

sudo easy_install ibm_db
ist das einzige, was noch ohne Fehlermeldung abgeht aber dann ist Schluss:

Code: Alles auswählen

>>> import ibm_db
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: libdb2.so.1: cannot open shared object file: No such file or directory
Da braucht man wohl noch irgendwelche Bibliotheken, von denen nirgendwo steht, wo man sie herbekommt.

Außerdem kommt erschwerend hinzu, dass ich das Ganze für Linux (Ubuntu 12.04) und Windows(7) (beides 64-Bit) brauche und eigentlich nur noch mit Python 3 arbeiten wollte, womit wohl solche Tools wie easy_install auch gestorben sind.

Könnt ihr mir mal einen Schubs in die richtige Richtung geben?

mfg Volker
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

vboehm hat geschrieben: ... und eigentlich nur noch mit Python 3 arbeiten wollte, womit wohl solche Tools wie easy_install auch gestorben sind.
Also eine gute Idee wäre es, die Python Version einzusetzen, die das Modul auch unterstützt. Wenn das eben "nur" Python 2.7.x ist, dann führt da wohl kein Weg drum herum (außer Du portierst das DB-Modul auf Python3 :D ).

Und wieso sind ``pip`` oder ``easy_install`` dann gestorben? Beide sind doch auch für Python3 verfügbar! Je nach Distribution / OS kann es dafür auch mal Namen a la ``pip3`` geben...

Welche Libs das Python-Modul voraussetzt, sollte in dessen Doku irgend wo beschrieben sein - wenn nicht, ist das nicht gerade ein Qualitätsmerkmal und sollte einem grundsätzlich zu denken geben. Leider verlinkst Du ja nichts, so dass wir Dir bei der Recherche schlecht(er) helfen können.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

eine kurze Recherche im Cheeseshop ergab: Es gibt für Linux keine fertiges .egg für Python3, die sind alle für Python 2.x. Für Win gibt es auch "nur" ein 32bit .egg für Python 3.2. Link

Ob sich ibm_db via pip auf den Sources für P3 bauen lässt müsstest du probieren. Auf der Google Code Seite des Projekts wird die P3 Unterstützung als "Beta" bezeichnet...

Immerhin gibt es auch einen SQLAlchemy Adapter. :-)

Gruß, noisefloor
Antworten