2010-10-06 67 views
6

我正在使用Java Scripting API從我的Java應用程序執行一些外部Python腳本。 python腳本使用sqlite3模塊。該應用程序的執行導致錯誤用於Jython的sqlite3模塊

ImportError: No module named sqlite3 

當我考慮的Jython的Lib目錄(在classpath中),有沒有sqlite3的模塊。因此,我的搜索開始,我發現一個_sqlite3.py文件,這是一個javasqlitehttp://bugs.jython.org/issue1682864)的實施。這是用來製造更多類似的錯誤。

然後,我從python的標準庫位置搜索了原始python的sqlite3包(原始目錄),並將它放在Jython的Lib文件夾中。然後它找不到導入的_sqlite模塊,它是_sqlite.so庫(實際的C實現)。

所以,現在我需要幫助。

回答

4

我不相信在Jython中有任何使用CPython擴展的方法,所以你在那裏運氣不好。

這裏有一個適用於SQLite的Java包裝:http://www.zentus.com/sqlitejdbc/ 這不會像Python數據庫驅動程序那樣工作,所以使用它需要一些適應。

沒什麼樂趣,但也許你(或其他人)可以在它周圍編寫一些Jython來生成sqlite3模塊的替代替代品。

+1

是的你是對的。所以我拋棄了Jython並使用ProcessBuilder類來執行Python腳本。像魅力一樣工作。不管怎麼說,還是要謝謝你。 – kaychaks 2010-10-08 05:25:19