Сам обновляющий py2exe/py2app приложение

Вы можете использовать Linq Sum(), чтобы получить сумму значений элементов словаря:

double sum = dict.Sum(d => d.Value);

Live Demo

12
задан Luper Rouch 5 May 2009 в 01:34
поделиться

3 ответа

Я не верю, что py2exe поддерживает исправленные обновления. Однако, если вы не упакуете весь пакет в один EXE-файл ( пример веб-сайта py2exe - внизу страницы), вы можете получить небольшие обновления, просто заменив определенные файлы , например EXE-файл, например. Это может значительно уменьшить размер ваших обновлений.

Вы можете написать отдельное приложение для обновления , которое можно загрузить / запустить изнутри вашего приложения. Это приложение может отличаться для каждого обновления, так как файлы, которые должны быть обновлены, могут изменяться.

Как только приложение запускает программу обновления, оно должно закрыться, чтобы файлы могли быть перезаписаны. После завершения обновления вы можете снова открыть приложение перед тем, как закрыться.

4
ответ дан 2 December 2019 в 22:23
поделиться

Я не знаю о патчах, но в OS X «стандартным» для этого с приложениями какао является Искра . В основном это делает "appcasting". Он загружает полное приложение каждый раз. Возможно, стоит взглянуть на это для вдохновения.

Я полагаю, что в OS X вы можете просто загрузить фактическую часть вашего пакета приложений, которая содержит ваш конкретный код (а не библиотеки libs и т. Д., Которые входят в комплект), и это будет довольно маленький и его легко заменить в комплекте.

В Windows вы, вероятно, сможете проделать аналогичную уловку, не объединив свое приложение в один exe-файл, что позволит вам изменить один файл, который фактически изменился.

Я представляю, что ваш реальный код Python будет намного меньше, чем 40 МБ, так что это, вероятно, правильный путь.

Что касается замены работающего приложения, ну, во-первых, вам нужно найти его местоположение, чтобы вы могли использовать sys.executable , чтобы получить отправную точку, затем вы, вероятно, могли бы разветвить дочерний процесс, уничтожить родительский процесс и сделать так, чтобы ребенок выполнял фактический процесс. замена?

В настоящее время я играю с небольшим приложением wxPython и задаюсь вопросом, какова именно эта проблема. Я хотел бы услышать о том, что вы придумали.

Кроме того, насколько велико ваше приложение при сжатии? Если он хорошо сжимается, возможно, вы все равно можете позволить себе отправить все это целиком.

В настоящее время я играю с небольшим приложением wxPython и задаюсь вопросом именно об этой проблеме. Я хотел бы услышать о том, что вы придумали.

Кроме того, насколько велико ваше приложение при сжатии? Если он хорошо сжимается, возможно, вы все равно можете позволить себе отправить все это целиком.

В настоящее время я играю с небольшим приложением wxPython и задаюсь вопросом именно об этой проблеме. Я хотел бы услышать о том, что вы придумали.

Кроме того, насколько велико ваше приложение при сжатии? Если он хорошо сжимается, возможно, вы все равно можете позволить себе отправить все это целиком.

3
ответ дан 2 December 2019 в 22:23
поделиться

Поскольку py2exe помещает все скомпилированные модули вашего приложения в ZIP-файл, вы можете попробовать обновить этот файл с помощью создание сценария, который обновляет его из заданного набора файлов. Затем замените оставшиеся файлы, которые были изменены (которых должно быть немного, если таковые имеются).

1
ответ дан 2 December 2019 в 22:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: