我有一个Python程序,我试图使用Py2Exe打包。我使用的是Python 3.4。我的程序使用Sqlachemy和Sqlite3来创建和访问数据库。
当我从Py2Exe安装生成的文件时,我得到了dll错误:
Sqlite不是有效的Win32应用程序
我试图通过这里列出的各种解决方法,包括卸载python并重新安装所有模块,以确保我只有32位版本。有什么想法吗?
我的setup.py代码如下所示。它使用了为sqlite列出的一些工作,以及sqlalchemy的数字
from distutils.core import setup
import py2exe
setup(console = ['notetest.py'],
options = {'py2exe' : {'packages' : [
'reportlab',
'reportlab.graphics.charts',
'reportlab.graphics.samples',
'reportlab.graphics.widgets',
'reportlab.graphics.barcode',
'reportlab.graphics',
'reportlab.lib',
'reportlab.pdfbase',
'reportlab.pdfgen',
'reportlab.platypus',
'sqlalchemy.dialects.sqlite',
#'sqlalchemy.databases.sqlite',
'sqlite3'
]}} )
答案 0 :(得分:1)
好的,所以我不确定这是否真的是“有效”的工作,但它的工作原理相当简单。
我从Sqlite下载了最新的Sqlite dll。我只是用这个更新的文件替换了Py2Exe生成的Sqlite dll,程序工作得很好。
我也使用InnoSetup编译MSI安装程序,因此可以简单地将“较新”的dll复制到预编译目录中以包含在MSI安装程序中。
这对我有用。希望它能帮助别人