尝试将python文件转换为可执行文件

我是一个初学者,使用tkinter制作了我的第一个GUI计算器。我想将py文件转换为exe文件。我尝试使用pyinstallerauto-py-to-exe,但是当文件准备好并运行时,它显示Windows错误Cannot run Script main,我的文件名为main。

import getpass
from os import mkdir
import tkinter,os,time
from functools import partial
from tkinter import PhotoImage
from tkinter.constants import SEL
class Calculator(tkinter.Tk):
    '''This class creates calculator using tkinter module'''
    def __init__(self):
        super().__init__()
        
        # Changing height and width of window
        self.geometry('279x316')
        self.resizable(False,False)
        self.title('Calculator')
        image=PhotoImage('download.ico')
        self.iconbitmap(image)
        # Creating tkinter varible to store what user has entered
        self.__store_value=tkinter.StringVar()
        self.__store_value.set('')
        #Creating entry widget for input
        self.__input_user=tkinter.Entry(self,font='lucidia 20 bold',textvariable=self.__store_value) 
        self.__input_user.pack(fill='x')
        self.bind('<Return>',partial(self.click,'='))
        # This Buttons will be ther in calculator
        self._button_dict={"C":"C","(":"(",")":")","/":"/","9":9,"8":8,"7":7,"*":"*","6":6,"5":5,"4":4,"+":"+","3":3,"2":2,"1":1,"-":"-","His":"His","0":0,".":".","=":"="}
                          
    
    def create_button(self,row=5,column=4):
        '''Creates button in the window,button_dict contains name of each button and an argument to be given to click function when pressed,no of rows in calculator and no. of columns'''
        self.__main_frame=tkinter.Frame(self)
        self.__main_frame.pack(fill='both')
        k=0
        for i in range(row):
            for r in range(column):
                
                try:
                    button=tkinter.Button(self.__main_frame,text=list(self._button_dict.keys())[k],command=partial(self.click,self._button_dict[list(self._button_dict.keys())[k]]),font='lucidia 20 bold')
                    button.grid(row=i,column=r,ipadx=15)
                    self._button_dict[list(self._button_dict.keys())[k]]=button
                    k+=1
                
                except Exception as e:
                    k+=1

                
        #    configuring each button
        self._button_dict['His'].grid(ipadx=1)
        self._button_dict['C'].grid(ipadx=13)
        self._button_dict['('].grid(ipadx=18)
        self._button_dict[')'].grid(ipadx=18)
        self._button_dict['.'].grid(ipadx=18)
        self._button_dict['+'].grid(ipadx=11)
        self._button_dict['='].grid(ipadx=12)
        self._button_dict[r'*'].grid(ipadx=14)

        
       
    def click(self,arg,*event):
        if arg=='C':
            '''If click on C clears the text area'''
            self.__store_value.set('')
            self.update()
        elif arg=='His':
            if os.path.exists(f"C:\\Users\\{getpass.getuser()}\\Calculator\\Log.txt"):
                self.__his=tkinter.Tk()
                self.__his.title('History')
                im=PhotoImage('History.ico')
                self.__his.iconbitmap(im)
                with open(f"C:\\Users\\{getpass.getuser()}\\Calculator\\Log.txt") as f:
                    for i in f.read().split('\n'):
                        if i=='':
                            pass
                        else:
                            tkinter.Label(self.__his,text=i,relief='solid').pack()
            else:
                self.__store_value.set("Error")
                self.update()
                
        
        elif arg=='=':
            if self.__store_value.get()=='':
                pass
            else:
        
                try:
                    l=self.__store_value.get()
                    self.__store_value.set(eval(self.__store_value.get()))
                    
                    if os.path.exists(f"C:\\Users\\{getpass.getuser()}\\Calculator\\Log.txt"):
                        with open(f'C:\\Users\\{getpass.getuser()}\\Calculator\\Log.txt',"a") as f:
                            f.write(f"{l}={eval(l)}\n")
                    else:
                        try:
                            os.mkdir(f'C:\\Users\\{getpass.getuser()}\\Calculator')
                        except Exception as e:
                            pass
                        with open(f'C:\\Users\\{getpass.getuser()}\\Calculator\\Log.txt',"a") as f:
                            f.write(f"{l}={eval(l)}\n")
                except Exception as e:
                    self.__store_value.set('Error')
                    self.update()
        else:
            if self.__store_value.get()=='Error':
                self.__store_value.set(arg)
                self.update()
            else:
                self.__store_value.set(f'{self.__store_value.get()}{arg}')
                self.update()
    def on_closing(self):
        try:
            os.remove(f'C:\\Users\\{getpass.getuser()}\\Calculator\\Log.txt')
                
        except Exception as e:
            pass
        self.destroy()
if __name__ == "__main__":
    app=Calculator()
    app.create_button()
    app.protocol("WM_DELETE_WINDOW",app.on_closing)
    app.mainloop()

    

上传ico图片时出现错误,因此您可以在https://github.com/01TanmayDaga/Calculator上找到图片

请帮助我!

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...