有问题的代码:
from tkinter import *
root = Tk()
test_label = Label(root, text = "Hello")
test_label.pack()
root.mainloop()
我只能从IDLE运行这个python代码,如果我以任何其他方式运行它,窗口会在屏幕上闪烁并立即关闭。我试过了:
- 添加"输入"行以防止其关闭
- 从windows powershell中运行
- 使用pyinstaller
将代码编译到EXE中现在我无法找到任何其他建议。我尝试制作一个简单的单行程序,只需要输入,并且正常工作并保持开放状态。 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工作正常。
答案 0 :(得分:1)
好的,我想我已经解决了这个问题!我读过Windows有时会尝试使用python 2.7打开.py文件,即使它们是用3.6编写的。我从我的电脑上卸载了python 2.7,现在该文件正常运行。
因此,对于遇到此问题的人,请尝试确保您的计算机正在打开python 3,而不是python 2。
答案 1 :(得分:0)
当我在命令提示符下运行python时,它会显示python 2.7,所以我将tkinter更改为Tkinter
,程序通过导入.py
文件
Pyinstaller工作(通过canopy cmd提示符):
第一行是我放入IDLE的cmd提示符
注意:我的系统命令提示符使用python 2.7,而canopy(python环境)命令提示符使用3.5和pyinstaller
答案 2 :(得分:0)
我也遇到了这个问题,据我所知,没有人能找到适当的解决方案。
我发现最好的方法是将-i放在文件名之前。例如: python -i yourfile.py
这将在命令行中启动IDLE