#python #pyinstaller
#python #pyinstaller
Вопрос:
У меня есть проект Python с несколькими исходными пакетами / файлами, в котором также используются такие пакеты, как numpy, scipy, pandas.
Также я использую режим Pyinstaller onefile для упаковки проекта в один исполняемый файл, и я пытаюсь уменьшить время, затрачиваемое Pyinstaller на генерацию исполняемого файла.
Сначала Pyinstaller потребовалось ~ 20 минут для связывания, и большая часть времени была занята подключением модуля «gevent». Я исключил модуль gevent (поскольку он не был действительно используемым модулем), что позволило сэкономить время до 8-10 минут.
Я также замечаю, что, сначала создав и сохранив файл «Analysis.toc» в каталоге сборки, можно сократить время, затрачиваемое на этапе анализа при последовательных запусках (учитывая, что после первого запуска не было добавлено никаких дополнительных источников).
Каковы систематические способы сокращения времени упаковки pyinstaller? Сохраняется ли после созданияAnalysis.tc достаточно ли безопасно сохранять файл и повторно использовать его?
Ответ №1:
Сначала создайте venv с помощью python -m venv <env_name>
для проектов pyinstaller особенно важно, чтобы он не включал дополнительные дополнительные модули, которые вам могут не понадобиться, но установлены в вашей системе. Это уменьшит размер вашего файла вместе со временем, необходимым для объединения вашего приложения. Это важный шаг для вашей цели.
Во-вторых, создайте файл спецификации с помощью команды pyi-makespec options name.py
. Взгляните на сгенерированный файл спецификации, который будет назван name.spec
и убедитесь, что все необходимые модули добавлены, а ненужные модули не включены, и сохраните его.
Как только у вас будет необходимый файл спецификации, вы можете создавать свое приложение столько раз, сколько потребуется, используя команду pyinstaller options name.spec