Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将sqlite3与IronPython 2.6一起用于.Net4_Sqlite_Ironpython_Sharpdevelop - Fatal编程技术网

将sqlite3与IronPython 2.6一起用于.Net4

将sqlite3与IronPython 2.6一起用于.Net4,sqlite,ironpython,sharpdevelop,Sqlite,Ironpython,Sharpdevelop,我正在使用SharpDevelop 3.2.0,IronPython 2.6.1 for.Net4 要使用IronPython的此模块访问sqlite3功能,请执行以下操作: 我的程序是一个GUI应用程序,可以访问sqlite数据库。当从IronPython通过ipy.exe解释器启动程序时,一切(包括数据库访问)都非常完美 但是,如果我试图启动我用SharpDevelop编译的程序,使其成为可执行文件,我会得到一个异常: IronPython.Runtime.Exceptions.Impor

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

要使用IronPython的此模块访问sqlite3功能,请执行以下操作:

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

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

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

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

从_sqlite3导入*

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

我已经给出了sqlite3模块的路径,但是IronPython或sqlite3模块文件夹中没有名为_sqlite3的文件

请告诉我,在构建我的程序的编译版本时,什么会导致此问题


非常感谢。

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

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

最好是修改主脚本以包括

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

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

我已经料到您会告诉我以某种方式引用DLL

在几次失败之后,我成功地编译了程序,但是包含DLL有点棘手

  • 我将DLL添加到SharpDevelop引用中
  • 我必须在脚本中添加以下代码:
  • 
    导入系统
    进口新界
    导入clr
    sys.path.append(nt.getcwd())
    clr.AddReferenceToFile('IronPython.SQLite.dll')

    这是指向我的执行目录中的DLL所必需的

    非常感谢你的帮助