Я не знаю о патчах, но в OS X «стандарт» для приложений с какао - Sparkle . В основном это делает "appcasting". Он загружает полное приложение каждый раз. Возможно, стоит посмотреть на это для вдохновения.
Я полагаю, что в OS X вы, вероятно, можете просто загрузить фактическую часть вашего пакета приложений, которая содержит ваш конкретный код (не библиотеки и т. Д., Которые входят в комплект), и это было бы довольно мало и легко заменить в комплекте.
В Windows вы, вероятно, сможете сделать аналогичный трюк, не объединяя ваше приложение в один exe-файл, что позволит вам изменить один файл, который фактически изменился.
Я бы предположил, что ваш реальный код Python будет гораздо меньше, чем 40 МБ, так что, вероятно, это путь.
Что касается замены запущенного приложения, сначала нужно найти его местоположение, чтобы вы могли использовать sys.executable
, чтобы получить отправную точку, затем вы, вероятно, могли бы разветвить дочерний процесс, уничтожить родительский процесс и получить ребенок делает фактическую замену?
В настоящее время я играю с небольшим приложением wxPython и задаюсь вопросом, какова именно эта проблема. Я хотел бы услышать о том, что вы придумали.
Кроме того, насколько велико ваше приложение при сжатии? Если он хорошо сжимается, возможно, вы все равно можете позволить себе отправить все это.