Pyinstaller OneFile Исполняемый файл Невероятно Огромный и Медленный
Я знаю, что я не первый, кто спрашивает, но другие ответы на форуме не могли мне помочь, поэтому я спрашиваю. У меня есть короткий (181 строка) Python-скрипт, который имеет только импорт
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, RadioButtons
и запускает интерактивный математический инструмент с ползунками и переключателями. Но когда я собрал его с помощью pyinstaller, у меня появилась огромная (90 МБ) папка dist, которая, похоже, включает в себя всевозможные ненужные пакеты, такие как babel и криптография. Исполняемый файл занимает около 5 секунд, чтобы отобразить рисунок. Когда я запускаю его с параметром --onefile, все кажется не лучше, так как я получаю исполняемый файл размером 43 МБ, который занимает еще больше времени, около 10 секунд, для отображения рисунка.
Я уверен, что это не ошибка сценария, потому что в Spyder требуется меньше секунды, чтобы раскрыться. Я подозреваю, что это из-за всех посторонних пакетов. Если так, как я могу заставить pyinstaller исключить их, и если нет, то в чем заключается вероятная проблема? Благодарю.
РЕДАКТИРОВАТЬ: Кроме того, я делаю все это в виртуальной среде conda, которую я где-то читал уже должно помочь сделать исполняемый файл Pyinstaller меньше. После создания среды единственными пакетами, которые я непосредственно установил, были pyinstaller, spyder, numpy и matplotlib.
1 ответ
Это происходит потому, что при создании исполняемого файла вы также используете библиотеки, а я импортирую только то, что необходимо для программы, а затем компилирую это, например, для приложения в Tkinter:
from tkinter import Tk, Label
root = Tk()
Label(root, text='Label').pack()
root.mainloop()