Почему после компиляции приложения в exe файл с помощью pyinstaller windows defender не дает запустить мое приложение и говорит, что это вирус

Рейтинг: 0Ответов: 1Опубликовано: 15.07.2023

В общем я сделал приложение для вычисления ИМТ на python, скомпилировал этот файл в exe с помощью pyinstaller, и в первый раз у меня все запустилось. Но когда я перезагрузил компьютер windows defender выдал ошибку сказав, что в этом приложении вирус. В итоге я разрешил компьютеру запускать его, так как знаю, что вирусов в моем приложении нет, но все равно как избавиться от этой ошибки при следующих компиляциях?

Ответы

▲ 1Принят

Дело в том, что при компиляции .py скрипта, pyinstaller создаёт самораспаковывающийся архив, включающий облегчённую версию вашего Python(без неиспользуемых в скрипте модулей) и ваш скрипт. Некоторые вирусы себя скрывают, запаковываясь в самораспаковывающийся архив, поэтому и получается, что Windows Defender считает твою самораспаковывающуюся программу вирусом.

Самое лёгкое решение - удалить флаг "--onefile", чтобы pyinstaller не запаковывал твою получившуюся директорию с программой в самораспаковывающийся архив.

Другое возможное решение - воспользоваться альтернативой Pyinstaller - Nuitka. Опции сборки почти одинаковые, а размер получившегося файла будет меньше чем через Pyinstaller.