Я не знаю о компиляции в C, но для компиляции исполняемых файлов в целом вы можете использовать pyinstaller, cx_freeze или несколько других менее распространенных модулей для создания исполняемой папки, которая содержит все файлы .dll
для запуска программы.У меня есть только опыт работы с cx_freeze, поэтому я буду обсуждать это здесь.Если ваша цель состоит в том, чтобы у конечного пользователя был только 1 «файл» при загрузке, вам нужно использовать программу установки.Полуцитировать документацию cx_freeze по адресу: https://cx -freeze.readthedocs.io / en / latest / faq.html
cx_Freeze не поддерживает создание одного файла exe,где все библиотеки для вашего приложения встроены в один исполняемый файл.[Существуют модули, которые делают это, но, насколько я понимаю, они используют «хаки», которые могут помечать их антивирусными программами.]
Вы можете использовать IExpress длясжать каталог сборки из cx_Freeze в самораспаковывающийся архив: исполняемый файл, который распаковывает ваше приложение во временный каталог и запускает его.IExpress - это утилита, включенная в Windows, предназначенная для создания установщиков, но она одинаково хорошо работает, если вы скажете ей запускать исполняемый файл cx_Freeze после извлечения.
В качестве альтернативы, вы можете создать самораспаковывающийся архив, используя 7zip,Это немного сложнее, чем при использовании IExpress, но может обеспечить большую гибкость и позволяет создавать приложение с использованием только инструментов с открытым исходным кодом.
В качестве альтернативы вы можете скомпилировать с помощью python setup.py bdist_msi
для создания одного.msi
файл, который позволит пользователю выбрать, куда он хочет установить программу.В конце дня у пользователя по-прежнему будет каталог со всеми файлами .dll
и еще много чего, но он сможет выбрать, куда уложить эти вещи на свой жесткий диск!Я думаю, что этот метод используется большинством приложений, которые я установил.Это предполагает, что вы также разрабатываете для Windows, если нет, вы должны включить свою ОС в свой пост.