我對Python和Stack Overflow都很陌生,所以我在提問時不是很有經驗,但是我一直在搜索這個網站超過兩個小時,而且我仍然找不到解決我的問題。我已經下載cx_freeze,並創造了我的setup.py文件:cx_freeze .exe沒有打開tkinter窗口
from cx_Freeze import setup, Executable
import sys
import os
import tkinter
base = None
if sys.platform == 'win32':
base = None
executables = [Executable("Bounce.py", base=base)]
packages = ["tkinter"]
options = {
'build_exe': {
'packages': ["os", "tkinter"],
},
}
os.environ['TCL_LIBRARY'] = r'C:\Program Files\Python36\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Program Files\Python36\tcl\tk8.6'
includes = []
include_files =
[r"C:\Users\peeps\AppData\Local\Programs\Python\Python36\DLLs\tcl86t.dll",
r"C:\Users\peeps\AppData\Local\Programs\Python\Python36\DLLs\tk86t.dll"]
setup(
name = "Bounce",
version = "1.0",
description = "Test",
options = options,
executables = executables
)
我的實際Python程序與Tkinter的模塊運行,我測試我試圖用這個與非Tkinter的Python文件相同的過程,這是轉換成.exe完美無瑕。當我運行這個setup.py使用cx_freeze將Bounce.py轉換爲.exe時,.exe程序打開並立即關閉。 Bounce.py文件沒有向控制檯輸出任何內容,所以我不確定打開的窗口是用於控制檯還是tkinter窗口(儘管窗口大小是控制檯的窗口大小,而不是tkinter窗口的大小)由400 px指定爲500),因爲它關閉得太快。有趣的是,當我改變了setup.py文件的系統平臺規範:
if sys.platform == 'win32':
base = None
到:
if sys.platform == 'win32':
base = 'Win32GUI'
像一些導遊說,其實我得到一個錯誤信息: https://i.stack.imgur.com/yA7ZG.png
我不知道那個錯誤信息意味着什麼或者它爲什麼發生。如果您對如何解決此問題有任何想法,請告訴我。我覺得我已經搜索了每個論壇,並且我是第一個遇到這個問題的人:/
就我而言,我想用'PyInstaller'但'cx_Freeze ' – WSY
非常感謝你!問題是我有include_files並且包含變量,除非它們實際上未被使用。我複製了你的程序,它的工作完美無瑕(我不得不將include_files改爲不同的DLL目錄,但這是唯一的區別)。我不知道這是否值得一整個單獨的帖子,但我想知道是否有一種方法來擺脫退出我的程序後彈出的錯誤消息:[鏈接] http://i.imgur .com/hGzT6eP.png這是當tkinter關閉時打印到控制檯的錯誤信息,但它實際上並不是一個「錯誤」 – MolotovPeep
我不知道你把include_files改成了什麼(因爲它對我很好用機器)。您可以嘗試在調整代碼之前使用python終端而不是Anaconda運行您的腳本(我真的對Anaconda幾乎沒有任何用處)。 – WSY