【问题标题】:Python .exe problemPython .exe 问题
【发布时间】:2011-03-15 13:16:56
【问题描述】:

我成功地创建了我的应用程序的可执行版本。它只是一个基本的数据库相关应用程序。所以它在同一个目录下有一个数据库和一个图标文件,叫做“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”更改为“数据”。现在一切正常。

【问题讨论】:

  • 您能分享将条目添加到数据库的代码吗?

标签: python executable py2exe


【解决方案1】:

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

另一种选择是与您的数据库一起工作所需的 dll 已被省略。

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

【讨论】:

  • 您的 glob 返回您期望的文件?
  • 您已使用 glob 获取 py2exe 的文件。可能发生以下情况之一:1 glob 本身存在问题,无法识别您需要它的文件,例如,它从错误的工作目录开始。 2 py2exe 在这里不处理 glob,你需要自己指定文件。
【解决方案2】:

我的 glob 正在返回我期望的文件。在创建.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()

【讨论】:

  • 下次编辑原始问题。每个 SO 问题(应该)导致答案,而不是澄清、编辑等。
  • 更好... 这次,编辑原始问题。 StackOverflow Usenet.
猜你喜欢
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
  • 2021-06-19
  • 2010-12-12
  • 2020-04-11
  • 2022-11-20
相关资源
最近更新 更多