Jython的sqlite3模块

6 投票
1 回答
2854 浏览
提问于 2025-04-16 05:05

我正在使用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模块的东西。

撰写回答