Jython的sqlite3模块
我正在使用Java脚本API从我的Java应用程序中执行一些外部的Python脚本。这些Python脚本使用了sqlite3模块。但是,运行这个应用程序时出现了错误。
ImportError: No module named sqlite3
我查看了Jython的Lib
目录(这个目录在类路径中),发现里面没有sqlite3模块。于是我开始寻找,找到了一个_sqlite3.py
文件,这个文件是javasqlite
的实现(http://bugs.jython.org/issue1682864)。使用这个文件后,出现了更多类似的错误。
接着,我从Python标准库的位置搜索了原始Python的sqlite3
包,并把它放到了Jython的Lib
文件夹里。但这样一来,它又找不到导入的_sqlite
模块,而这个模块是_sqlite.so
库(实际的C语言实现)。
所以,现在我需要帮助。
1 个回答
4
我觉得在Jython中使用CPython扩展是行不通的,所以你可能没办法了。
这里有一个SQLite的Java封装:http://www.zentus.com/sqlitejdbc/。这个东西的工作方式和Python的数据库驱动不太一样,所以使用它需要做一些调整。
这并不好玩,但也许你(或者其他人)可以在这个基础上写一些Jython代码,做一个可以直接替代sqlite3
模块的东西。