簡體   English   中英

Python 3.2 Cx_Freeze不會編譯整個tkinter

[英]Python 3.2 Cx_Freeze won't compile whole tkinter

我做了這個小計算器,我嘗試用cx_freeze進行壓縮。 它計算一些東西,並在messagebox中給出答案。 當我從IDLE運行它時工作正常,但是當我從.exe運行它時,它會打開用Tkinter創建的GUI,但是如果我按下我的計算按鈕,它會彈出消息框,它會在dos shell中給出以下錯誤:

'Tkinter回調中的異常回溯(最近一次調用最后一次):文件“C:\\ Python32 \\ lib \\ tkinter__init __。py”,第1399行,在調用返回self.func(* args)文件“calculator1.pyw”,第46行, in energyKinetic NameError:全局名稱'messagebox'未定義'

我使用以下'setup.py':

from cx_Freeze import setup, Executable


setup(
    name = 'Kinetic Energy Calculator',
    version = '0.1',
    description = 'Calculate',
    executables = [Executable('calculator1.pyw')],
)

並從cmd使用'C:\\ Python32> python setup.py build'運行它。

計算器本身的代碼只是siple Tkinter GUI,帶有按鈕,標簽,條目和消息框,所以我沒有看到在這里發布它的共鳴,除非當然有人會覺得我這樣做是必要的。 那么,有沒有什么重要的我沒有放入setup.py來正確編譯?

您將不得不使用tkinter窗口創建自定義消息框,因為在嘗試啟動除按F5按鈕之外的程序時,實際的消息框不存在。 換句話說,你無法解決它。 你必須創建新的窗口。

您還忘了添加基本選項:

    setup(
        name = 'Kinetic Energy Calculator',
        version = '0.1',
        description = 'Calculate',
        executables = [Executable('calculator1.pyw', base="Win32GUI")]
        )

雖然它仍然不起作用,但現在可以識別tkinter。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM