我正在使用SharpDevelop 3.2.0,Iron
Python 2.6.1 for .Net4.
要使用此模块访问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的小存根,但它不知道任何已安装的IronPython版本,因此不会从DLLs文件夹加载任何东西.
您最好修改主脚本以包含
import clr clr.AddReference("IronPython.sqlite.dll")
然后确保IronPython.sqlite.dll与exe位于同一目录中.无论如何,这是我的首选选项,我应该在有机会时将其添加到说明中.