Py2Exe,Sqlite - 不是一个有效的Win 32应用程序

时间:2014-06-03 20:30:24

标签: python dll sqlite py2exe

我有一个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'
    ]}} )

1 个答案:

答案 0 :(得分:1)

好的,所以我不确定这是否真的是“有效”的工作,但它的工作原理相当简单。

我从Sqlite下载了最新的Sqlite dll。我只是用这个更新的文件替换了Py2Exe生成的Sqlite dll,程序工作得很好。

我也使用InnoSetup编译MSI安装程序,因此可以简单地将“较新”的dll复制到预编译目录中以包含在MSI安装程序中。

这对我有用。希望它能帮助别人