使用sqlite3和IronPython 2.6 for .Net4

use*_*651 5 sqlite ironpython sharpdevelop

我正在使用SharpDevelop 3.2.0,IronPython 2.6.1 for .Net4.

要使用IronPython的这个模块访问sqlite3功能: IronPython.SQLite

我的程序是一个GUI应用程序并访问sqlite数据库.当从IronPython通过ipy.exe解释器启动程序时(包括数据库访问)工作得非常完美.

但是,如果我尝试启动我使用SharpDevelop编译为可执行文件的程序,我会得到异常:

IronPython.Runtime.Exceptions.ImportException:没有名为_sqlite3的模块

此异常的原因位于dbapi2.py中:

来自_sqlite3 import*

在IronPython控制台上,我可以导入_sqlite3并按预期使用它.

我已经向SharpDevelop提供了sqlite3模块的路径,但是在IronPython或sqlite3-module文件夹中没有任何名为_sqlite3的文件.

请告诉我在构建我的程序的编译版本时会出现什么问题.

非常感谢你.

Jef*_*rdy 4

任何地方都没有_sqlite3文件;IronPython.Sqlite.dll 提供了一个名为 的模块_sqlite3

如果您按照网站说明操作并将 IronPython.Sqlite.dll 放入 DLL 文件夹中,这可能就是它在 SharpDevelop 下无法工作的原因。运行 ipy.exe 时,它​​会隐式添加对 DLL 文件夹中任何 DLL 的引用。当 SharpDevelop 构建可执行文件时,它是一个运行 IronPython 的小存根,但它不知道任何已安装的 IronPython 版本,因此不会从 DLL 文件夹加载任何内容。

你最好的方法是修改你的主脚本以包含

import clr
clr.AddReference("IronPython.SQLite.dll")
Run Code Online (Sandbox Code Playgroud)

然后确保 IronPython.SQLite.dll 与 exe 位于同一目录中。无论如何,这是我的首选选项,当我有机会时,我应该将其添加到说明中。