使用 tkinter 的 Python 程序在 Windows 10 中立即关闭
Posted
技术标签:
【中文标题】使用 tkinter 的 Python 程序在 Windows 10 中立即关闭【英文标题】:Python program using tkinter closes immediately in Windows 10 【发布时间】:2018-05-29 06:26:48 【问题描述】:有问题的代码:
from tkinter import *
root = Tk()
test_label = Label(root, text = "Hello")
test_label.pack()
root.mainloop()
我只能从 IDLE 运行这个 python 代码,如果我以任何其他方式运行它,窗口会在屏幕上闪烁并立即关闭。我试过了:
-添加“输入”行以防止其关闭
-从 windows powershell 运行
-使用pyinstaller将代码编译成EXE
现在我找不到任何其他建议。我尝试制作一个简单的 1 行程序,它只要求输入,并且可以正常工作并保持打开状态。 tkinter 程序在 IDLE 中运行良好,但在任何其他情况下都没有。 这里发生了什么?
编辑:如果我从命令行而不是 windows 10 powershell 运行程序,我会得到以下输出:
Traceback (most recent call last):
File "C:\Users\Cam\Desktop\CSCI Notes\Programs\test.py", line 1, in
<module>
import tkinter
ImportError: No module named tkinter
但是,tkinter 文件在我计算机上的 python 库中,在 python shell 或 IDLE 中导入 tkinter 可以正常工作。
【问题讨论】:
请不要链接到其他网站上的代码。请在问题中包含minimal reproducible example(例如:您的“tiny little tkinter script”) 谢谢,我很欣赏礼仪提示。固定! 调试此类问题的常用方法是从命令提示符运行程序,这样您就可以看到可能生成的任何错误消息。你显然已经尝试过了,那么当你从 shell 运行它时,输出到底是什么? 您是否尝试过重新安装/更新 tkinter? 当我从 windows powershell 运行时,没有任何类型的错误消息或其他输出。 python shell 闪了不到一秒就立即关闭了,就像我在 windows 资源管理器中双击了 .py 文件一样。 【参考方案1】:如果您使用的模数未安装在您的计算机中,即使您使用 IDLE 安装了它,也会发生这种情况。尝试使用命令“pip install modulo”安装它,否则尝试手动安装。
【讨论】:
【参考方案2】:我也遇到过这个问题,据我所知没有人有合适的解决方案。
我发现最好的方法是将 -i 放在您的文件名之前。例如: python -i yourfile.py
这将在命令行中启动 IDLE
【讨论】:
【参考方案3】:好的,我想我已经解决了这个问题!我读到 Windows 有时可以尝试用 python 2.7 打开 .py 文件,即使它们是用 3.6 编写的。我从电脑上卸载了python 2.7,现在文件运行正常了。
因此,对于遇到此问题的任何人,请尝试确保您的计算机正在打开 python 3,而不是 python 2。
【讨论】:
【参考方案4】:当我在命令提示符下运行 python 时,它显示 python 2.7,所以我将 tkinter 更改为 Tkinter
,程序通过导入 .py
文件运行
使用命令:
Pyinstaller 工作(通过 canopy cmd 提示符):
第一行是我在 IDLE 的 cmd 提示符中输入的内容
执行时填充文件夹:
在 dist 内部,我运行 test.exe
显示窗口
注意:我的系统命令提示符使用 python 2.7,而 canopy(python 环境)命令提示符使用 3.5 和 pyinstaller
【讨论】:
这是一个已知问题。 Windows 似乎通常默认为 python 2.7。这虽然可以修复,但请参阅this。您也可以尝试将#! python3
添加为脚本中的第一行以请求python3 解释器。以上是关于使用 tkinter 的 Python 程序在 Windows 10 中立即关闭的主要内容,如果未能解决你的问题,请参考以下文章
Python3 Tkinter基础 Checkbutton 使用for循环生成多个 anchor=W 西对齐