Python .exe问题

时间:2011-03-15 13:16:57

标签: python executable py2exe

我成功创建了应用程序的可执行版本。它只是一个基本的数据库相关应用程序。因此它在同一目录中有一个名为“data”的数据库和一个图标文件。 当我尝试使用.exe文件向数据库添加条目时,会出现“无法打开数据库文件”等错误。但是同一目录中的图标文件没有问题。

有人可以帮助我吗?

感谢。

这是我的setup.py:

from distutils.core import setup
import py2exe
from glob import glob

data_files = [("Microsoft.VC90.CRT", glob(r'c:\dev\ms-vc-runtime\*.*')),("data", glob('Veriler\*'))]

options = {
    'py2exe': {
        'dll_excludes': [
            'MSVCP90.dll'
        ]
    }
}

setup(windows=[{"script": "Nokta Ekleme.pyw","icon_resources":[(1,"Veriler\Alarko.ico")]}], options=options, data_files=data_files)

好的伙计们。我找到了解决方案。数据文件的目标和源目录必须具有相同的名称。所以我将“Veriler”改为“data”。现在一切都好。

2 个答案:

答案 0 :(得分:0)

你的globs是否会返回你期望的文件?试试print glob('Veriler\*')。您可能需要提供完整的目录路径。

另一种选择是使用数据库所需的dll已被遗漏。

我会推荐pyInstaller而不是py2exe一周中的任何一天 - 你可能会发现切换到那里有很好的里程,因为它处理抓取必要的文件,包括可能是你的问题的dll,远胜于py2exe。

答案 1 :(得分:0)

我的手机正在返回我期望的文件。在.exe创建之后,它们已经成功地从“Veriler”复制到“data”目录。

在我的数据库中添加条目的部分:

        con = lite.connect('data\noktalar.sdb')
        cur = con.cursor()
        ad = self.tc1.GetValue()
        cihaz = self.tc2.GetValue()
        tip = self.nokta_tipleri[self.CB1.GetCurrentSelection()] 
        miktar = self.sp.GetValue()


        cur.execute('insert into noktalar values(null, ?, ?, ?, ?)', (ad, cihaz, tip, miktar))
        con.commit()
        cur.close()
        con.close()
相关问题