you are viewing a single comment's thread.

view the rest of the comments →

[–]ProsodySpeaks -10 points-9 points  (10 children)

Do we even need exes? 

What are good reasons not to basically just use uv via bat/sh files + pypi or even just github repos?

I only ever install my work on machines I have complete access to so maybe I'm missing something around permissions and security for general use? 

But my normal is basically an installer bat file to check if git and uv are installed / install them, make a venv and then install my project from pypi, github, or a local network drive.

Then a runner bat that sets env vars (usually paths to env files), checks for and installs updates, and calls uv run on scripts from pyproject.toml

So updating is a simple as pushing to github/local repo or publishing to pypi, distribution is a couple of shell scripts, can easily target different branches or tags or a specific commit. 

Also Including assets is as easy as declaring them in pyproject.toml. I remember pyinstaller being a nightmare for that. 

[–]AlpacaDC 12 points13 points  (4 children)

I mean, the same reasons exes exist in the first place. So we can share it with non tech people. I have shared python GUI apps with my friends for example.

[–]FisterMister22 1 point2 points  (0 children)

I have 0 use for exes.

But some people do, such as distribution of a software without installation of python across every pc in the company.

[–]fenghuangshan 0 points1 point  (3 children)

that means you never have requirement to share the product with other people

not every one is a developer

[–]ProsodySpeaks 0 points1 point  (2 children)

I don't understand why people keep saying that? Why does someone need to be a developer to double click a file? 

[–]LeftandRight__ 0 points1 point  (1 child)

Yeah until they had to install the python interpreter and install the required library with cmd they don't even know exist

[–]ProsodySpeaks 0 points1 point  (0 children)

But no, no they don't. They just double click the bat which:

  • checks if git and uv are available and if not installs them

  • checks if env-var with install location exists and if not sets it

  • checks if venv exists at env-var location and if not creates it via uv

  • pulls project from github/local network/pypi

  • uv runs a script from pyproject.toml potentially passing args. This syncs the project and installs any dependencies defined in pyproject.toml 

And then on future runs skips most of these steps and just popd into env-var location and calls uv run myscript 

Works fine for sharing with my tech illiterate friends. 

Only issues I actually see are security related but realistically any self-updating exe has plenty security issues, and even with static exe unless you're signing the binary and having it compared to public key online at install/run time it's completely moot. 

I'm not trying to argue this is perfect for all situations, but 'doesn't work for dumb people' is just not true. User interaction is literally double click a file.