Python - Почему моя исполняемая программа долго загружается после ее создания с помощью pyinstaller? - PullRequest
0 голосов
/ 08 октября 2019

Я новичок в pyinstaller, но я заставил его работать и создал исполняемый файл.

Программа запускается на .22-.24 секундах на моем ноутбуке dinky с 2010 года.

Iсделал базовый pyinstaller, сохранив его как pyinstaller myscript.py --onedir, так как это было объяснено как самый быстрый способ его запуска. Независимо от этого, файл открывается в черный ящик с расширением .exe и загружается в течение примерно 22 секунд, прежде чем, наконец, открыть мое текстовое поле tkinter.

Я пробовал другие форматы, например --onefile, но это занимает веселые 95 секундоткрыть. Я попытался максимально оптимизировать свой код и довел время выполнения до .27 до впечатляющего .22 (сарказм). .Exe по-прежнему занимает столько же времени для загрузки.

Вот код

 import os
 import sys
 import shutil
 import pandas as pd
 import string
 import re
 from tkinter import *
 global lot
 def main():
    window=Tk()
    .... foo
 def lot_check():
    lot=lot.var
    ... foo
 def Lot_Error():
    window1=Tk()
    ... foo

 def clicked():
    lot=txt.get()
    lot=lot.upper()
        pass
    else:
        Lot_Error()
    lot=''.join(L)
    counter=pd.read_csv('F:foo,header=None,)

    r = re.compile("([a-zA-Z]+)([0-9]+)")
    counter_value=r.match(counter.iloc[0,0])
    ... foo
    letter=string.ascii_uppercase[counter_letter_converted]
    ...foo
    counter.iloc[0,0]=m
    counter.to_csv('F:Foo0', encoding='utf-8',header=False,index=False)    
    shutil.copyfile(F:Foo, 'F:Foo2)
    file='Foo2'
    os.startfile(file)
    window.destroy()
 main()
 window.mainloop()

Я прошу прощения за весь код, но я хотел включить все библиотеки и библиотеки, которые я вызываю,Я также хотел включить некоторые дополнительные вещи на случай, если что-то, что я делаю, вызывает эту проблему.

Мое единственное предположение - то, что я импортирую слишком много библиотек и что pyinstaller заставляет их полностью загружаться при каждом запуске. Делает ли что-то вроде from pandas import read_csv ускорение запуска exe?

Спасибо за помощь !!

1 Ответ

0 голосов
/ 10 октября 2019

Всем, кто сталкивается с той же проблемой, кажется, что я был прав! Или мне сначала не повезло, но после удаления всех несущественных библиотек мой код работает намного быстрее! Это займет около 2 секунд против 22. Не идеально, но я возьму это.

Так что, если возможно, используйте from x import y, если вы сосредоточены на скорости!

Что интересно, pyinstaller даже говорит, что загружает и запускает только используемые библиотеки, но, возможно, здесь есть некоторые недостатки. В любом случае, надеюсь, это поможет кому-нибудь в будущем!

...