使用 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 西对齐

Python的标准GUI:Tkinter的组件

python 3 - tkinter - ttk treeview:查看列文本

tkinter:如何使用 after 方法

了解Tkinter窗口几何

为啥我不能在 Mac 上使用 python 更改 tkinter 按钮的背景颜色?