tkinter - 使用 PyInstaller 将 python 脚本编译为 .exe 后运行时,Tkinter 窗口未打开
问题描述
bobux.py
在我使用 PyInstaller将 Python 脚本(我命名为 即使我从命令行运行它并使用 重新编译它pyinstaller bobux.py -Fwd all --onefile --icon=icon.ico
,我也看不到任何错误。我确实在文件中看到了很多警告build/bobux/warn-bobux.txt
,有些甚至显示 Python 无法识别要用 Java 编写的模块,使其无法识别java.<whatever java thing>
为 Python 模块。我还在十六进制编辑器中打开了 .exe,并清楚地看到它有 Tkinter 文件。
那么这里有什么问题呢?
这是我编译的原始代码:
from tkinter import Tk, messagebox, Button
from webbrowser import open
# It's literally just a joke program, but idk why it breaks as soon as I compile it. :/
def a():
open('https://www.youtube.com/watch?v=dQw4w9WgXcQ')
root = Tk()
root.geometry('300x300')
root.title("☺")
b = Button(root, text='Free robux no scam hahahahahaaha', command=a)
b.pack()
还有我的规范文件:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['bobux.py'],
pathex=['C:\\Users\\20059053\\Documents'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='bobux',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True )
还:
- 生成的 .exe 绝对是 MASSIVE (20.8 MB!) 我该如何解决这个问题?
- 我用一个只使用 Tkinter 的不同脚本尝试了这个,它工作得很好(尽管终端窗口也保持了 4 秒)。是因为导入
webbrowser
它不起作用吗?
解决方案
推荐阅读
- javascript - 从对象中获取值到数组中
- java - 将页面添加到 Spring Boot 应用程序(非常基础)
- javascript - Angular 6:重新加载窗口(刷新 F5)在 IE11 中需要一个额外的“/”来重新加载当前路径
- php - 没有链接参数的mysqli_query
- firebase - Firebase Auth API 电子邮件验证 JavaScript
- react-native - 已安装库但在 react-native 环境中不起作用
- scala - 如何加入数据框中的数据
- android - 从通知操作启动后台服务的白名单对开发人员真正意味着什么?
- php - 表单提交在mysql中显示一个空白条目
- angular - 第二次动作调度在 RxJS 和 Angular 6 中不起作用