Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试打开时未能执行_Python_Tkinter_Exe - Fatal编程技术网

Python 尝试打开时未能执行

Python 尝试打开时未能执行,python,tkinter,exe,Python,Tkinter,Exe,我和特金特一起工作。我正在尝试创建一个图形用户界面。我想让我的设备内的其他人进行测试。我正在使用pyinstaller使其成为.exe 我使用的命令:pyinstaller.exe--onefile--icon=Skugo.ico Beta.pyw 它构建了它和所有东西,但当我尝试打开它时,它会给出错误“检测到致命错误。无法执行脚本测试版。” 我还尝试使用自动py-to-exe。同样的事情发生在它建成后 我一直在寻找,一些人说这可能是由于他们的脚本,但没有任何错误,弹出在我的 我的剧本: fro

我和特金特一起工作。我正在尝试创建一个图形用户界面。我想让我的设备内的其他人进行测试。我正在使用pyinstaller使其成为.exe

我使用的命令:pyinstaller.exe--onefile--icon=Skugo.ico Beta.pyw

它构建了它和所有东西,但当我尝试打开它时,它会给出错误“检测到致命错误。无法执行脚本测试版。”

我还尝试使用自动py-to-exe。同样的事情发生在它建成后

我一直在寻找,一些人说这可能是由于他们的脚本,但没有任何错误,弹出在我的

我的剧本:

from tkinter import *
from tkinter import ttk
from tkinter import messagebox

import pandas as pd

from datetime import date
from datetime import timedelta
import csv
import os


class aSide(Tk):
    def __init__(self):
        Tk.__init__(self)
        self.resizable(True, True)

        window_height = 530
        window_width = 705
        screen_w = self.winfo_screenwidth()
        screen_h = self.winfo_screenheight()

        x = int((screen_w / 2) - (window_width / 2))
        y = int((screen_h / 2) - (window_height / 2))

        self.geometry("{}x{}+{}+{}".format(window_width, window_height, x, y))
        self.iconbitmap('Skugo.ico')
        self.title("Testing A-Side")

        self.today = date.today()
        self.yesterday = self.today - timedelta(days=1)
        self.todayIsMonday = self.today - timedelta(days=3)

        self.lead = Label(self, text='Lead', fg='Green', font=32)
        self.lead.grid(row=1, column=1, columnspan=7, pady=5)
        self.date = Label(self, text=self.today.strftime("%x"), fg='Blue', font=24)
        self.date.grid(row=2, column=1, columnspan=7)

        self.savetree = Button(self, text='Save Sheet', command=lambda: (self.savheet(), self.savecsvSheet()))
        self.savetree.grid(row=1, column=1, columnspan=2, pady=5)

        self.tree()

        self.editbtn = Button(self, text='EDIT', fg='navy blue', command=self.edit)
        self.editbtn.grid(row=5, column=2, columnspan=5, pady=5)
        self.removebtn = Button(self, text='REMOVE', fg='red', command=self.removeTeammate)
        self.removebtn.grid(row=5, column=2, columnspan=7, pady=10)

        self.station = Label(self, text='Station #')
        self.station.grid(row=8, column=1)
        self.b_l = Label(self, text='Break--Lunch')
        self.b_l.grid(row=8, column=2)
        self.names = Label(self, text='Teammate')
        self.names.grid(row=8, column=3)
        self.start = Label(self, text='Start Date')
        self.start.grid(row=8, column=4)
        self.agency = Label(self, text='Agency')
        self.agency.grid(row=8, column=5)
        self.hw = Label(self, text='Hours Work')
        self.hw.grid(row=8, column=6)
        self.note = Label(self, text='Notes')
        self.note.grid(row=8, column=7)

        self.entStation = Entry(self, width=3)
        self.entStation.grid(row=9, column=1)
        self.entb_l = Entry(self, width=4)
        self.entb_l.grid(row=9, column=2)
        self.entNames = Entry(self)
        self.entNames.grid(row=9, column=3)
        self.entStart = Entry(self, width=10)
        self.entStart.grid(row=9, column=4)
        self.entAgency = Entry(self, width=10)
        self.entAgency.grid(row=9, column=5)
        self.enthw = Entry(self, width=3)
        self.enthw.grid(row=9, column=6)
        self.entNote = Entry(self)
        self.entNote.grid(row=9, column=7)

        self.addteammate = Button(self, text='ADD TEAMAMTE', fg='green', command=self.addTeammate)
        self.addteammate.grid(row=10, column=1, columnspan=25, pady=20)

        self.saveSheet()
        self.savecsvSheet()

    def tree(self):
        self.my_tree = ttk.Treeview(self)

        self.my_tree['columns'] = (
            "Station #", "Break_Lunch", "Teammate", "Start Date", "Agency", "Hours Work", "Notes")

        self.my_tree.column('#0', width=0, stretch=NO)
        self.my_tree.column('Station #', anchor=CENTER, width=80)
        self.my_tree.column('Break_Lunch', anchor=CENTER, width=80)
        self.my_tree.column('Teammate', anchor=CENTER, width=120)
        self.my_tree.column('Start Date', anchor=CENTER, width=80)
        self.my_tree.column('Agency', anchor=CENTER, width=120)
        self.my_tree.column('Hours Work', anchor=CENTER, width=80)
        self.my_tree.column('Notes', anchor=CENTER, width=120)

        self.my_tree.heading('#0', text='', anchor=CENTER)
        self.my_tree.heading('Station #', text='Station #', anchor=CENTER)
        self.my_tree.heading('Break_Lunch', text='Break--Lunch', anchor=CENTER)
        self.my_tree.heading('Teammate', text='Teammates', anchor=CENTER)
        self.my_tree.heading('Start Date', text='Start Date', anchor=CENTER)
        self.my_tree.heading('Agency', text='Agency', anchor=CENTER)
        self.my_tree.heading('Hours Work', text='Hours Work', anchor=CENTER)
        self.my_tree.heading('Notes', text='Notes', anchor=CENTER)

        self.my_tree.grid(row=4, column=1, columnspan=7, pady=10, padx=10)

        os.chdir('Csv Files')
        self.path = os.getcwd()

        if date.today().weekday() == 0:
            with open('Testing A-Side ' + self.todayIsMonday.strftime("%m" + '.' + "%d" + '.' + "%Y") + '.csv',
                      newline='')as file:
                reader = csv.DictReader(file)
                for col in reader:
                    station = col['Station #']
                    b_l = col['Break_Lunch']
                    name = col['Teammate']
                    start = col['Start Date']
                    agency = col['Agency']
                    hw = col['Hours Work']
                    note = col['Notes']
                    self.my_tree.insert('', 0, values=(station, b_l, name, start, agency, hw, note))

        elif date.today().weekday() != 0:
            with open("Testing A-Side " + self.yesterday.strftime("%m" + '.' + "%d" + '.' + "%Y") + ".csv",
                      newline='')as f:
                reader = csv.DictReader(f)
                for col in reader:
                    station = col['Station #']
                    b_l = col['Break_Lunch']
                    name = col['Teammate']
                    start = col['Start Date']
                    agency = col['Agency']
                    hw = col['Hours Work']
                    note = col['Notes']
                    self.my_tree.insert('', 0, values=(station, b_l, name, start, agency, hw, note))

        self.parent = os.path.dirname(self.path)
        os.chdir(self.parent)

    def saveSheet(self):
        # self.prod_total = Label(self, text='Production Total')
        # self.prod_total.grid(row=1, column=6, columnspan=7)
        # self.total = Entry(self, width=5)
        # self.total.grid(row=2, column=6, columnspan=7)
        # self.save_total = Button(self, text='Save Production Total', command=self.saveProdTotal)
        # self.save_total.grid(row=3, column=6, columnspan=7, pady=5)

        os.chdir('Teammate Sheet')
        self.path = os.getcwd()

        self.excolumns = ["Station #", "Break_Lunch", "Teammate", "Start Date", "Agency", "Hours Work",
                          "Notes", ]  # , "Production Total"]
        self.info = [self.my_tree.item(item)['values'] for item in self.my_tree.get_children()]
        self.df = pd.DataFrame(self.info, columns=self.excolumns)
        self.df.to_excel("Testing A-Side " + self.today.strftime("%m" + '.' + "%d" + '.' + "%Y") + ".xlsx",
                         engine='xlsxwriter', index=False)

        self.parent = os.path.dirname(self.path)
        os.chdir(self.parent)

    def savecsvSheet(self):
        os.chdir('Csv Files')
        self.path1 = os.getcwd()

        self.excolumns1 = ["Station #", "Break_Lunch", "Teammate", "Start Date", "Agency", "Hours Work",
                           "Notes"]  # , "Production Total"]
        self.info1 = [self.my_tree.item(item)['values'] for item in self.my_tree.get_children()]
        self.df1 = pd.DataFrame(self.info1, columns=self.excolumns1)
        self.df1.to_csv("Testing A-Side " + self.today.strftime("%m" + '.' + "%d" + '.' + "%Y") + ".csv", index=False)

        self.parent1 = os.path.dirname(self.path1)
        os.chdir(self.parent1)

    def addTeammate(self):
        os.chdir('Csv Files')
        self.path4 = os.getcwd()

        with open('Testing A-Side ' + self.today.strftime("%m" + '.' + "%d" + '.' + "%Y") + '.csv', 'a',
                  newline='')as file:
            w = csv.writer(file)
            w.writerow([self.entStation.get(), self.entb_l.get(), self.entNames.get(), self.entStart.get(),
                        self.entAgency.get(),
                        self.enthw.get(), self.entNote.get()])

        self.my_tree.insert('', 0, values=(
        self.entStation.get(), self.entb_l.get(), self.entNames.get(), self.entStart.get(), self.entAgency.get(),
        self.enthw.get(), self.entNote.get()))

        self.parent4 = os.path.dirname(self.path4)
        os.chdir(self.parent4)

        self.entStation.delete(0, END)
        self.entb_l.delete(0, END)
        self.entNames.delete(0, END)
        self.entStart.delete(0, END)
        self.entAgency.delete(0, END)
        self.enthw.delete(0, END)
        self.entNote.delete(0, END)

        self.entStation.focus_set()

        self.savecsvSheet()

    def edit(self):
        self.updateteammate = Button(self, text='UPDATE', fg='navy blue', command=self.updateSheet)
        self.updateteammate.grid(row=11, column=1, columnspan=7)

        self.entStation.delete(0, END)
        self.entb_l.delete(0, END)
        self.entNames.delete(0, END)
        self.entStart.delete(0, END)
        self.entAgency.delete(0, END)
        self.enthw.delete(0, END)
        self.entNote.delete(0, END)

        self.select = self.my_tree.focus()
        self.val = self.my_tree.item(self.select, 'values')

        self.entStation.insert(0, self.val[0])
        self.entb_l.insert(0, self.val[1])
        self.entNames.insert(0, self.val[2])
        self.entStart.insert(0, self.val[3])
        self.entAgency.insert(0, self.val[4])
        self.enthw.insert(0, self.val[5])
        self.entNote.insert(0, self.val[6])

    def updateSheet(self):
        self.select = self.my_tree.focus()
        self.my_tree.item(self.select, text='', values=(
            self.entStation.get(), self.entb_l.get(), self.entNames.get(), self.entStart.get(), self.entAgency.get(),
            self.enthw.get(), self.entNote.get()))

        os.chdir('Csv Files')
        self.path2 = os.getcwd()

        with open('Testing A-Side ' + self.today.strftime("%m" + '.' + "%d" + '.' + "%Y") + '.csv', 'r')as read:
            reader = csv.DictReader(read)
            data = list(reader)

        with open('Testing A-Side ' + self.today.strftime("%m" + '.' + "%d" + '.' + "%Y") + '.csv', 'w',
                  newline='')as write:
            headers = ["Station #", "Break_Lunch", "Teammate", "Start Date", "Agency", "Hours Work", "Notes"]

            writer = csv.DictWriter(write, fieldnames=headers)
            writer.writeheader()

            for row in data:
                if row['Teammate'] == self.entNames.get():
                    row['Station #'] = self.entStation.get()
                    row['Break_Lunch'] = self.entb_l.get()
                    row['Start Date'] = self.entStart.get()
                    row['Agency'] = self.entAgency.get()
                    row['Hours Work'] = self.enthw.get()
                    row['Notes'] = self.entNote.get()
                writer.writerow(row)

        messagebox.showinfo("Data Updated!", self.entNames.get() + " data has been updated.")

        self.parent2 = os.path.dirname(self.path)
        os.chdir(self.parent2)

        self.entStation.delete(0, END)
        self.entb_l.delete(0, END)
        self.entNames.delete(0, END)
        self.entStart.delete(0, END)
        self.entAgency.delete(0, END)
        self.enthw.delete(0, END)
        self.entNote.delete(0, END)

        self.entStation.focus_set()

        self.updateteammate.grid_remove()

        self.savecsvSheet()

    def removeTeammate(self):
        self.selected = self.my_tree.focus()
        self.values = self.my_tree.item(self.selected, 'values')

        os.chdir('Csv Files')
        self.path3 = os.getcwd()

        with open('Testing A-Side ' + self.today.strftime("%m" + '.' + "%d" + '.' + "%Y") + '.csv', 'r') as read:
            reader = csv.DictReader(read)
            data = list(reader)

        with open('Testing A-Side ' + self.today.strftime("%m" + '.' + "%d" + '.' + "%Y") + '.csv',
                  'w', newline='')as write:
            headers = ["Station #", "Break_Lunch", "Teammate", "Start Date", "Agency", "Hours Work", "Notes"]

            writer = csv.DictWriter(write, fieldnames=headers)
            writer.writeheader()

            for row in data:
                if row['Teammate'] == self.entNames.get():
                    continue
                writer.writerow(row)

        self.parent3 = os.path.dirname(self.path3)
        os.chdir(self.parent3)

        with open('Removed.csv', 'a', newline='')as r:
            w = csv.writer(r)
            w.writerow([self.values[2], self.values[3], self.values[4]])

        messagebox.showinfo("Data Removed!", self.entNames.get() + "'s data has been removed.")

        self.my_tree.delete(self.selected)

        self.entStation.delete(0, END)
        self.entb_l.delete(0, END)
        self.entNames.delete(0, END)
        self.entStart.delete(0, END)
        self.entAgency.delete(0, END)
        self.enthw.delete(0, END)
        self.entNote.delete(0, END)

        self.entStation.focus_set()

        self.updateteammate.grid_remove()

        self.savecsvSheet()


if __name__ == "__main__":
    app = aSide()
    app.mainloop()

我遇到的问题是,我的熊猫模块显然没有安装。我只是继续复制我的脚本,为它创建了一个全新的目录并粘贴到那里。然后我又安装了熊猫。当我通过命令提示符运行我的.exe文件时,它会给我错误,说找不到pandas模块


我要感谢他为我解决问题提供的帮助。

这可能是许多致命错误。但是,如果脚本在转换为.exe之前运行良好,则可能是缺少包。有一次,我遇到了一个包的一部分问题,它没有自动包含在pyinstaller中。如果将命令更改为:
pyinstaller.exe--hidden import pkg_resources.py2_warn Beta.pyw-F
,它是否工作?@MartinWettstein它也会做同样的事情:(那么可能是文件?脚本需要文件(例如Skugo.ico)运行。如果这些文件与.exe不在同一文件夹中,它可能会崩溃。您可以将它们作为附加资源添加到pyinstaller中,这样您就不需要分发这些文件。我将所需的所有文件/文件夹都放在同一目录中。我使用auto py to exe将我的其他文件夹添加到my.exe中,结果仍然相同。当这种情况发生在我身上:将其更改为
.py
,再次转换,然后在控制台中运行它。然后,在控制台中获得错误的回溯,并可能找到问题所在。