Installer and Updater for a python desktop application
Question:
I am building a desktop app with python and packaging it to an exe with Pyinstaller.
I would like to ship my application with an installer and also provide automatic and silent updates to the software like Google Chrome, Dropbox or Github for Windows does.
I have found the following software to be able to do this:
- Google Omaha – Does not provide a server
- Github Shimmer – The perfect solution but Paul told me it can’t handle non .Net apps yet
- WinSparkle – Updater only.
- NetSparkle – As the name suggests very .Net focused
- NSIS – Installer.
- ClickOnce – .NET only
I am trying to find the easiest solution to my problem.
Answers:
WiX (Windows Installer XML toolset) is an open source project for an MSI authoring tool.
Part of the project is ClickThrough, a set of add-on tools, including a tool to automatically detect available updates (via an RSS feed), notify users and install the update.
As you can read here:
The Windows Installer Xml (WiX) toolset is composed of a compiler, a
linker, a lib tool and a decompiler. It generates MSI and MSM files
from XML input. It doesn’t include a GUI frontend to create the
project files, but there are a couple of projects that plan to fill
this gap. Votive, which is part of the WiX project, is a Visual Studio
extension. It allows you to create “WiX projects” that act like any
other project in a VS solution. WiX was created by Rob Mensching, a
Microsoft employee and former member of the MSI team, in his free time
and released as open source. It is used by several teams inside
Microsoft to create their setups.
I recommend Google Omaha. You can get managed servers for pretty cheap now days if the only thing holding you back is the server / overhead cost.
There is a suite of tools from the cloudmatrix guys that addresses that problem.
esky is an auto-update framework for frozen apps that is compatible with the common python “packaging” frameworks. signedimp tries to ensure that apps are not modified after they are signed, and to minimize invasive Windows UAC dialogs. myppy aims to insulate you from base library incompatibility issues on Linux eg installing on distributions with different gcc and libc versions. The whole set can be seen on github here.
The video and slides from this year’s PyCon are here: http://lanyrd.com/2012/pycon/spckh/
I’m working on a project that you may find useful.
I am building a desktop app with python and packaging it to an exe with Pyinstaller.
I would like to ship my application with an installer and also provide automatic and silent updates to the software like Google Chrome, Dropbox or Github for Windows does.
I have found the following software to be able to do this:
- Google Omaha – Does not provide a server
- Github Shimmer – The perfect solution but Paul told me it can’t handle non .Net apps yet
- WinSparkle – Updater only.
- NetSparkle – As the name suggests very .Net focused
- NSIS – Installer.
- ClickOnce – .NET only
I am trying to find the easiest solution to my problem.
WiX (Windows Installer XML toolset) is an open source project for an MSI authoring tool.
Part of the project is ClickThrough, a set of add-on tools, including a tool to automatically detect available updates (via an RSS feed), notify users and install the update.
As you can read here:
The Windows Installer Xml (WiX) toolset is composed of a compiler, a
linker, a lib tool and a decompiler. It generates MSI and MSM files
from XML input. It doesn’t include a GUI frontend to create the
project files, but there are a couple of projects that plan to fill
this gap. Votive, which is part of the WiX project, is a Visual Studio
extension. It allows you to create “WiX projects” that act like any
other project in a VS solution. WiX was created by Rob Mensching, a
Microsoft employee and former member of the MSI team, in his free time
and released as open source. It is used by several teams inside
Microsoft to create their setups.
I recommend Google Omaha. You can get managed servers for pretty cheap now days if the only thing holding you back is the server / overhead cost.
There is a suite of tools from the cloudmatrix guys that addresses that problem.
esky is an auto-update framework for frozen apps that is compatible with the common python “packaging” frameworks. signedimp tries to ensure that apps are not modified after they are signed, and to minimize invasive Windows UAC dialogs. myppy aims to insulate you from base library incompatibility issues on Linux eg installing on distributions with different gcc and libc versions. The whole set can be seen on github here.
The video and slides from this year’s PyCon are here: http://lanyrd.com/2012/pycon/spckh/
I’m working on a project that you may find useful.