【问题标题】:Python .exe file won't run when double clicked, but works when run through cmdPython .exe 文件在双击时不会运行,但在通过 cmd 运行时可以运行
【发布时间】:2021-12-24 09:03:46
【问题描述】:

我通过 Anaconda(更准确地说是 Spyder)在 python 中创建了一个程序,并使用 pyinstaller 制作了一个 .exe。简单地说,当我通过 anaconda 提示符运行它时,它可以工作,但是当我双击它时,它只是等待几秒钟然后关闭,什么都不做。

代码:

import xlrd
from scipy.fft import fft
import numpy as np
import tkinter as tk

def main():

    root =tk.Tk()
    root.title("Data input window")
    canvas1 = tk.Canvas(root, width = 620, height = 210,  relief = 'raised')
    canvas1.pack()
    inputdata = tk.StringVar(root)
        
    def getvalue():
        loc = inputdata.get()
        run(loc)
            
    label1 = tk.Label(root, text='Copy file and paste here:')
    label1.config(font=('helvetica', 14))
    canvas1.create_window(310, 25, window=label1)
    e1 = tk.Entry(root,textvariable = inputdata, width=100,fg="blue",bd=3,selectbackground='violet')
    canvas1.create_window(310, 65, window=e1)
    label2 = tk.Label(root, text='Only .xls files supported')
    label2.config(font=('helvetica', 8))
    canvas1.create_window(310, 105, window=label2)
    button1 = tk.Button(root, text='Input data', fg='White', bg= 'dark green', height = 1, width = 10,command=getvalue)
    canvas1.create_window(310, 180, window=button1)
    
    root.mainloop()
    s = input('Press X to exit')
    return 0;

if __name__ == '__main__':
    main()

run(loc) 基本上是当我按下启动时出现的 tkinter 小部件上的某个按钮时需要运行的整个程序。即使我需要输入以关闭程序,它仍然会自动关闭并且不会出现 tkinter 小部件。

我是初学者,如果这个问题很简单,很抱歉。

【问题讨论】:

  • 您可以尝试从命令提示符运行 exe 文件吗? (不是python文件)
  • 你在main函数末尾写return语句是不小心还是故意用分号写的?
  • 关于 ;退货后是的,这是不小心。如果这就是我的整个程序出现故障的原因,我会很生气哈哈。是的,我从命令提示符运行了 exe 文件,它工作得很好

标签: python tkinter cmd exe


【解决方案1】:

当你双击它时,程序仍在运行,只是窗口一结束就关闭,所以看起来不像。

当你从 cmd 运行时,你可以很容易地看到任何输出,因为之后窗口不会关闭。

但程序将在这两种情况下运行。

【讨论】:

    【解决方案2】:

    当您双击它或从 cmd 运行它时,它会运行程序
    但是在运行程序本身时(例如:双击它): 完成后窗口会关闭(这是正常的)

    从 cmd 运行时:程序将完成,但因为您没有运行该程序,而是运行了命令提示符,该命令提示符运行该程序,因此逻辑上它不会关闭命令提示符

    您可以通过输入您的脚本(在最后一行)来解决此问题:
    input()
    这将确保程序在等待用户输入时不会自动关闭

    【讨论】:

      猜你喜欢
      • 2018-12-21
      • 1970-01-01
      • 2019-12-30
      • 1970-01-01
      • 2021-12-26
      • 2021-01-20
      • 2011-11-11
      • 2013-08-12
      • 2022-10-06
      相关资源
      最近更新 更多