Я использую дистрибутив Anaconda Python 3.6 на Windows, и я sh преобразую простой python сценарий в автономный исполняемый файл. Проблема в том, что сгенерированный файл очень большой (~ 900 МБ) при использовании только нескольких внешних библиотек.
В частности, я использую PyQt5 и pyqtgraph и некоторые интегрированные python библиотеки, такие как sys, time, os и математика. До сих пор я использовал PyInstaller и Nuitka, но, похоже, я не могу существенно уменьшить размер исполняемого файла.
Я заметил существование некоторых mkl-файлов, которые занимают примерно 600 МБ пространства. После удаления этих файлов я все же смог запустить свою программу, казалось бы, без проблем. Я также заметил, что есть два файла с именем libopenblas, которые, по-видимому, имеют жизненно важное значение для работы программы и составляют в общей сложности 100 МБ.
Я рассмотрел этот вопрос и нашел похожие вопросы по Stackoverflow и другим места. Люди утверждают, что они могли генерировать исполняемые файлы, используя PyInstaller, которые были менее 40 МБ. Говорят, что для достижения такого уменьшения размера следует исключить все библиотеки беспорядка. Тем не менее, я не понимаю, что квалифицируется как «беспорядок». Например, я попытался исключить numpy, и программа не запустилась, несмотря на то, что я не использовал ее непосредственно в своей программе. По-видимому, используемые библиотеки имеют некоторые зависимости, без которых программа не может работать.
Наконец, я нашел этот форум , где предлагается использовать виртуальную среду вместо Anaconda. Я попытался настроить его с помощью venv, но у меня возникли проблемы с его реализацией, поскольку моя установка Anaconda мешает ему и не позволяет мне устанавливать все необходимые библиотеки после sh.
Независимо от того, что я делаю, я всегда в конечном итоге с данными по крайней мере 200 МБ. Как получить функциональный исполняемый файл размером менее 40 МБ? Если простая программа, подобная этой, производит такой большой файл, представьте, что я получу в итоге, если решу интегрировать другие библиотеки, такие как tenorflow или scipy. Это не жизнеспособное решение, и до сих пор я не нашел способ обойти его. Любая помощь приветствуется.
РЕДАКТИРОВАТЬ: Я попытался установить Python с ее официального сайта, и я удалил Anaconda из Path. Я получил файл немного меньшего размера, который не запустился.