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/

Reply via email to