[Python-Dev] Single-file Python executables (was: Computed Goto dispatch for Python 2)

Donald Stufft donald at stufft.io
Thu May 28 19:20:06 CEST 2015



On May 28, 2015 at 12:54:34 PM, Chris Angelico (rosuav at gmail.com) wrote:
> On Fri, May 29, 2015 at 2:28 AM, Chris Barker wrote:
> > oops, sorry -- I see this was addressed in another thread. Though I guess I
> > still don't see why "single file" is critical, over "single thing to
> > install" -- like a OS-X app bundle that can just be dragged into the
> > Applications folder.
>  
> There's also "single thing to uninstall", which IMO is more important.
> If I download a tiny program that's supposed to just do one tiny
> thing, and it has to install itself into Program Files, Common Files,
> Windows\System32, and Documents & Settings\my-user-name\Applications,
> then I have to hope it has a proper uninstaller. If it's a single
> executable that just does its stuff (or, failing that, a single zip
> file that I extract to anywhere and run the program), I can expect
> that deleting that file (or directory) will get rid of it all. Of
> course, it's entirely possible that it's gone and left its droppings
> all over the system, but that's a matter of trust - a legit program
> won't lie about that.
>  
> Is this a Windows-specific issue, or is it also intended for Linux and
> Mac OS, where there'll already be a system Python (so a
> single-file-executable would be used to be independent of the system
> Python)?
>  

I think it’s an issue for all platforms, even when there is a system Python
that can be used.

Here’s why:

* Even on Linux systems Python isn’t always a guaranteed thing to be installed,
  for instance Debian works just fine without any Python installed.

* On OS X you have the system Python yes, but that is in an unknown state. It
  could have any number of changes made to it or things installed or what have
  you.

* Even if you have Python installed already, is it the right one? What if it’s
  an ancient RHEL box that has 2.6 or (heaven forbid) 2.4? What if it’s a not
  ancient box that has Python 2.7 but you want to deploy your app in Python 3?

* What if you have Python installed already, but it’s been patched by the place
  you got it from and now the behavior is different than what you expected?

etc etc.

---  
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA




More information about the Python-Dev mailing list