sqlite - 将 sqlite3 与 IronPython 2.6 一起用于 .Net4

标签 sqlite ironpython sharpdevelop

我正在使用适用于 .Net4 的 SharpDevelop 3.2.0、IronPython 2.6.1。

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

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

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

IronPython.Runtime.Exceptions.ImportException: No module named _sqlite3

出现这个异常的原因位于dbapi2.py中:

from _sqlite3 import *

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

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

请告诉我在构建我的程序的编译版本时可能导致此问题的原因。

非常感谢。

最佳答案

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

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

最好是修改主脚本以包含

import clr
clr.AddReference("IronPython.SQLite.dll")

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

关于sqlite - 将 sqlite3 与 IronPython 2.6 一起用于 .Net4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3513981/

相关文章:

sql - 使用 Rails(ActiveRecord) 查询 2012 年的最后一行 + 2013 年的所有行 + 2014 年的第一行 - 最佳实践

c# - 此 ironpython 代码的 C# 版本是什么

asp.net - Sharpdevelop、asp.net 并运行/调试它?

c# - 如何在运行时重建 Windows 应用程序

android - 使用 SimpleCursorAdapter 从 Cursor 更改值

iphone - 如何创建多个sqlite数据库实例?

ironpython - Spotfire IronPython - 从数据表计算出的值?

vb.net - SharpDevelop错误: "The tools version ' 12. 0' is unrecognized..."

c# - MVVM - 模型教程?

c# - 无法将代码块放入我的正则表达式匹配组