2010-10-06 14 views
6

Ich benutze Java Scripting API, um einige externe Python-Skripte aus meiner Java-Anwendung auszuführen. Die Python-Skripte verwenden das Modul sqlite3. Die Ausführung der Anwendung wird in Fehler führtsqlite3-Modul für Jython

ImportError: No module named sqlite3 

Wie ich den Blick in Lib Verzeichnis (das im Classpath ist) von Jython, gibt es kein sqlite3-Modul. Daher beginnt meine Suche und ich fand eine _sqlite3.py Datei, die eine Implementierung von javasqlite (http://bugs.jython.org/issue1682864) ist. Es hat ähnliche Fehler verursacht.

Dann suchte ich das Originalpython sqlite3 Paket (Originalverzeichnis) aus dem Python-Standard-Bibliotheksort und legte es in den Jython Lib Ordner. Es konnte dann kein importiertes _sqlite-Modul finden, das die _sqlite.so-Bibliothek ist (tatsächliche C-Implementierung).

So, jetzt brauche ich Hilfe.

Antwort

4

Ich glaube nicht, dass es eine Möglichkeit gibt, eine CPython-Erweiterung in Jython zu verwenden, so dass Sie kein Glück haben.

Es gibt einen Java-Wrapper für SQLite hier: http://www.zentus.com/sqlitejdbc/ Dies wird nicht wie ein Python-Datenbank-Treiber funktionieren, so dass die Verwendung etwas Anpassung erfordern würde.

Nicht lustig, aber vielleicht könnten Sie (oder jemand anderes) etwas Jython schreiben, um einen Drop-in Ersatz für das sqlite3 Modul zu erzeugen.

+1

Ja, Sie haben Recht. Also habe ich Jython weggeworfen und die Python-Skripte mit ProcessBuilder-Klassen ausgeführt. Lief wie am Schnürchen. Danke trotzdem. – kaychaks