Как создать файл exe из python программы?
Написал мини игру и теперь хочу сделать из неё exe файл. Нашёл 2 решения - auto-py-to-exe и pyinstaller. Но в обоих случаях после создания файла антивирус помечает его как вирус, что очень плохо. И тут дело не в коде, даже программа hello world помечается как вирус. Какие способы создания exe файла вы можете посоветовать, без такого рода проблем?
Ответы (2 шт):
Скорее всего, Вы имеете ввиду Microsoft SmartScreen и его сообщение о неопознанном приложении (либо иной другой антивирус) - для этого exe-файл необходимо подписать сертификатом. Способ конвертации .py в .exe в данном случае значения не имеет.
Сертификат можно сгенерировать самостоятельно с помощью MakeCert и подписать им файл c помощью SignTool. В данной статье этот вопрос расписан пошагово.
Однако доверия к такому сертификату не будет. Максимум можно вручную добавить его в качестве доверенного корневого центра сертификации локально на ПК.
Чтобы подписанный exe "принимался" на всех ПК, зачастую получают платный сертификат от специализированных компаний. Одна из самых дешевых-известных - Comodo. Здесь расписывали процесс получения. Раньше были бесплатные варианты, как этот, но теперь у этой компании также платно.
Либо у Microsoft есть вариант отправить самоподписанный exe к ним на проверку. Здесь расписаны все варианты.
Во-первых, что такое "антивирус"? Мало ли что там у Вас и как? С такими данными Вы никогда не получите реальную помощь.
"...даже программа hello world помечается как вирус...". Что значит "помечается"? Если, к примеру, Windows Defender обнаружит нечто, сразу же выполняются действия по блокировке и перемещению в карантин. Что? Где? Как у Вас? Каков результат этого "отмечания"? Не в коде программы дело, а в необходимых для её работы файлах и правах на их запуск.
По крайней мере, с помощью pyinstaller можно создать сборку, стартующую с административными правами (опция --uac-admin). Можно также создать ярлык для программы и уже ему предоставить административные права.
Не исключено, что Ваша машина уже развалена так, что в ней ничего нормально не работает.
Не исключено, что в ней нечто уже заражено, хотя и неактивно, но влияет на сборку (может, модуль какой). Как минимум, для подтверждения проблемы надо попробовать на другом компе цяцьку запустить.
И наконец, МС отправляет подозрительные файлы в облако. Вы даже себе не представляете, что туда только не попадает. Пока с этими образцами разберутся, проходят месяцы. Я это отключаю - мне не нужны письма счастья о том, что у кого-то где-то что-то заражено. Таким способом, кстати, МС легко узнаёт о появлении крэков, кряков и кейгенов. Пользователи сами помогают, при этом платить за лицензии не хотят. А всего лишь нужно залезть в настройки и не светить свой софт всему облаку.
Есть ещё настройки на базе репутации... В Windows Defender, по крайне мере, многое из этого надо отключать иначе просто затрахает криками о вирусах на каждом шагу. Середину найти сложно, но у меня нет проблем такого рода, например.