I know whatever environment I run my shell script in has sh, I can't rely on (the right version of) python being there.
Why not?
Because you could be on another machine that doesn't have Python 3.X it only has 3.X-1. or you could write code for Python 3.12 and then four years later no one has 3.12 anymore.
Sometimes you need to download packages from pip but pip might not be available or you may be hitting your company's internal pip mirror.
How often are you writing scripts that accidentally require a specific minor version of Python 3 to run? If you have dependencies, 1) you're no longer scripting, and 2) you need to manage your runtime environment anyway.
Runtime environments can change often, if you need to install your application on a ton of PC's you don't want to install python version 3.X on all of those instead you could just compile it into a native binary, pip is the most unsafe hell
If you're compiling a native binary you DEFINITELY aren't in scripting territory anymore.
I know whatever environment I run my shell script in has
sh
, I can't rely on (the right version of) python being there.Why not?
Because you could be on another machine that doesn't have Python 3.X it only has 3.X-1. or you could write code for Python 3.12 and then four years later no one has 3.12 anymore.
Sometimes you need to download packages from pip but pip might not be available or you may be hitting your company's internal pip mirror.
How often are you writing scripts that accidentally require a specific minor version of Python 3 to run? If you have dependencies, 1) you're no longer scripting, and 2) you need to manage your runtime environment anyway.
Runtime environments can change often, if you need to install your application on a ton of PC's you don't want to install python version 3.X on all of those instead you could just compile it into a native binary, pip is the most unsafe hell
If you're compiling a native binary you DEFINITELY aren't in scripting territory anymore.