如何在 wxPython 中使用 cx_freeze?

How to use cx_freeze with wxPython?

我无法cx_freeze将最简单的 wxPython 应用程序转换为 .exe 文件。 我想知道如何进行。

我正在使用 Python 3.6.8、wxPython 4.0.4 msw (phoenix) wxWidgets 3.0.5 和 Windows 10。 我试过冻结一个复杂的 wx 应用程序,它没有用,所以我尝试了我能想到的最简单的应用程序。

这是我的 wx 应用程序:

import wx

app = wx.App()
frm = wx.Frame(None, title="Hello World")
frm.Show()
app.MainLoop()

这是 cx_freeze 的设置:

from cx_Freeze import setup, Executable

build_exe_options = {
    "packages": ["os", "wx"],
    "excludes": ["tkinter"]}

setup(name="simplewxapp",
      version="1",
      description="simplewxapp",
      options={"build_exe": build_exe_options},
      executables=[Executable("simplewxapp.py", base="Win32GUI")])

当我使用此命令时:python setup.py build 我希望它能正常工作(就像我不使用 wxPython 时一样)。 相反,我收到此错误消息:

 File "C:\Program Files\Python36\lib\site-packages\win32\lib\win32verstamp.py", line 159, in stamp
    h = BeginUpdateResource(pathname, 0)
pywintypes.error: (2, 'BeginUpdateResource', 'Le fichier spécifié est introuvable.')

我也第一次用 cx freeze 试过。我这边也没有成功!我现在使用 pyinstaller,经过一些调整后它工作得很好。

您可以在这里找到它:https://www.pyinstaller.org/