On 19Nov2020 18:03, Eric V. Smith <e...@trueblade.com> wrote: > >On 11/19/2020 5:32 PM, Chris Angelico wrote: >>On Fri, Nov 20, 2020 at 9:22 AM Eric V. Smith <e...@trueblade.com> wrote: >>>But even that doesn't help with the use case of wanting an executable >>>without having to install Python first. I've had need to ship an >>>executable to users who have no idea what Python is. I just want a >>>normal Windows .exe file that's self contained. >>> >>And that's exactly why I say it's an attractive nuisance. It's very >>tempting to think "oh, I could just make it easier for my users, and >>then they don't have to think about anything".
I remain in Eric's camp here. Though thanks for informing me of zipapp. If I'm making a tool for a client or end users, _they do not know or care that it is written in Python_. They want a MacOS app or Windows .exe or whatever platform standard application which they can _just invoke_ like any other opaque application. Often, this should work on anyone's machine. So you can't assume: - particular libraries are present, particularly third party libraries (like PyQt in my personal case) - particular Python interpreters are present (if any) So bundling is often _highly desireable_. As Eric says, it's in the same vein as static linking - the required stuff is part of what you ship. With .apps (and presumably in some way in Windows) you get to supply file bindings, icons, etc. The standard natiuve experience. Back to MacOS .apps (my Windows knowledge is thin to the point of transparency), you _can_ make thin .apps, which might include a zipapp to run against the system Python. But would it contain the third party PyPI modules? The third party libraries? A sufficiently modern Python for the code? If not, in some ways I may as well just ship a small shell script which builds a venv and fills it in on first use. Static linking and application dependency bundling is _not_ an attractive nuisance, it is a common and robust way to ship something which Just Works. It may not be necessary in you environment or use cases, but in the very common case where you want users to just use something without installing a development environment to support it, it is the go. Cheers, Cameron Simpson <c...@cskk.id.au> _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/ILNHPKVFHHVAIWRF5HGG6HS3KZA32UGY/ Code of Conduct: http://python.org/psf/codeofconduct/