В последние несколько лет я написал небольшую небольшую программу на python, и теперь я хотел бы ее распространять, но моя первая попытка не вызвала большого энтузиазма, поскольку многим потенциальным пользователям не понравилась идея загрузки и установки python и всех зависимостей, необходимых для запуска моего приложения.
Я несколько недель искал решение для компиляции своего кода во что-то легкое для запуска для всех, но я не очень доволен тем, что нашел.
У меня нет проблем с идеей замораживания приложения, а не для его компиляции. Это просто означает, что конечный пользователь будет ждать несколько секунд, чтобы загрузить приложение и займет больше места на своем жестком диске.
Моя проблема заключается в том, чтобы найти способ упаковать все приложения в исполняемый файл для каждой ОС (пусть говорят большие: windows, mac, linux - очевидно, другой исполняемый файл для каждой ОС) без необходимости установки виртуальных машин или вино или аналогичные варианты. Я сильно подозреваю, что это возможно, так как я видел кучу игр ren'py, упакованных точно так, как я хотел бы упаковать свое приложение, но я не знаю, как получить тот же результат для моей программы.
Схематически для моего приложения требуется консоль для запуска и включает несколько домашних пакетов, numpy и matplotlib. Он также имеет систему поддержки нескольких языков, которая динамически включает языковой файл, перезаписывая предыдущие настройки:
exec('from lang.%s import lang' % language)
Я подозреваю, что это может создать некоторые проблемы. Наконец, программе требуется несколько папок для сохранения ее настроек, журналов и т.д. В первом запуске, поэтому они также должны быть включены. Мой компьютер запускает ubuntu mate 16.10 (x64), а версия python - 2.7, но в будущем я планирую перевести его на python 3. Созданные исполняемые файлы могут быть одиночными тяжелыми файлами, которые содержат почти все необходимые или легкие файлы, а все остальное может быть найденный в ближайшей папке; Я действительно не предпочитаю одно решение или другое.
Я знаю, что этот вопрос возникает время от времени и, вероятно, уже был дан ответ, но последнее появление такого вопроса, которое я мог найти, датируется 2014 годом, которое звучит как эоны назад, если мы рассмотрим, как быстро меняются вещи в этом поле.
Изменить. Поскольку, как представляется, нет решения с условиями, которые я предложил, я могу подумать о настройке некоторого уровня эмуляторов/обертки/совместимости/для запуска морозильника для разных ОС, но я "Не знаю, что делать. Я читал здесь и там, что вино не всегда работает должным образом и не может найти ничего для компиляции для mac на linux. Насколько я понимаю, программа не должна требовать другой компиляции для 32/64 бит систем, но если есть простой способ для компиляции для каждой возможности, было бы хорошо. Виртуальные машины по-прежнему не идут, прямо сейчас у меня нет места на моем диске для настройки двух или более виртуальных машин (что является большим недостатком ssd-дисков...), не говоря уже о оплате лицензий на ОС, которые используется несколько раз в год для компиляции бесплатного программного обеспечения.