Py2Exe, Sqlite - 不是有效的 Win 32 应用程序
我有一个用Python写的程序,想用Py2Exe来打包。我的Python版本是3.4。这个程序使用Sqlalchemy和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'
]}} )
1 个回答
1
好的,我不确定这是不是一个真正“有效”的解决办法,但它确实有效,而且相当简单。
我从 Sqlite 下载了最新的 Sqlite dll 文件。我只是把 Py2Exe 生成的 Sqlite dll 替换成这个更新的文件,结果程序运行得非常顺利。
我还在使用 InnoSetup 来编译 MSI 安装程序,所以你可以简单地把这个“更新的” dll 文件复制到预编译的目录里,这样就能包含在 MSI 安装程序中了。
这个方法对我有效,希望对其他人也有帮助。