Python exe слишком медленно - PullRequest
1 голос
/ 18 июня 2020

Я сделал программу python, которая считывает данные из csv, сортирует их и показывает графики с помощью Plotly. Когда я тестировал файл .py, он работал очень быстро, затем, когда я конвертировал его в .exe, он начал работать медленнее. Вот мой код

print("Importando modulos")
import os
import pandas as pd
import numpy as np
import glob
import time
import gc
from datetime import datetime
from tkinter import * 
from tkinter import ttk
import tkinter.messagebox
import plotly.express as px
print("Modulos Importados")
try:
    start_time = time.time()
    path = os.path.dirname(os.path.abspath("E3_converter.py"))
    def grafic_interface(dicc):
        def show(event):
            df=dicc[event.widget['text']]
            fig = px.line(df, x='Time', y=['B003.AQ',"B004.AQ"])
            fig.show()
        form=Tk()
        form.title("Analisis de Sistema Monitoreado")
        form.iconbitmap("D:\Escritorio\pruebas\e3solutionsfinalsolo.ico")
        form['background']="#1500b0"
        nombre = Label(text='FECHAS\n', fg = '#ffffff',bg = '#1500b0', font = 'Helvetica 16 bold')
        nombre.grid(row=1, column=2)
        nombre.place(x=150,y=10)
        cont=2
        i=0
        for date in dicc:
            if cont%2==0:
                data=Button(form,text=str(date))
                data.place(x=50,y=70+(30*i))           
                data.bind("<Button-1>", show)
            else:
                data=Button(form,text=str(date))
                data.place(x=250,y=70+(30*i)) 
                i+=1.2
                data.bind("<Button-1>", show)
            cont+=1
        y=(int(cont)/2)*60
        form.geometry("400x"+str(int(y)))
        print("--- %s seconds ---" % (time.time() - start_time)) 
        form.mainloop()

    LIST_CSV=[]
    files=list(glob.glob(path+"\\*.csv"))
    if len(files)>0:
        df_one=pd.read_csv(files[0])
        LIST_CSV.append(df_one)
        print("Recolectando datos")
        for i in range(1,len(files)):
            df_temp=pd.read_csv(files[i])
            LIST_CSV.append(df_temp)
        print("Uniendo datos")
        df=pd.concat(LIST_CSV)
        df['Time']= pd.to_datetime(df['Time']) 
        print("Ordenando datos")
        df.sort_values(by='Time')
        global_dates=list(df.Time.dt.strftime('%d-%m-%Y').unique())
        while (global_dates.count(np.nan)): 
            global_dates.remove(np.nan)
        global_dates.sort(key=lambda date: datetime.strptime(date, "%d-%m-%Y"))
        GLOBAL_DICT={} 
        for date in global_dates:
            print("Realizando query fecha:   "+str(date))
            datetime_object = datetime.strptime(str(date), '%d-%m-%Y')
            data=df.loc[(df["Time"].dt.month==datetime_object.month) & (df["Time"].dt.day==datetime_object.day)]
            GLOBAL_DICT[str(date)]=data
        grafic_interface(GLOBAL_DICT)          
    else:
        print("No existe ningun archivo de extension csv en este folder")
except:
    time.sleep(40)

Я добавил печать, чтобы увидеть, когда она начнет выполняться. Мои результаты выглядят так enter image description here

Это занимает около 10 минут !!! чтобы показать мне первый отпечаток

...