> On 23 Mar 2020, at 17:59, Frédéric De Jaeger <[email protected]> wrote:
>
> Hi all,
>
> There is a recurring problem in my company where we use python in various
> places (python3).
> We do cross platform development windows/linux and our python scripts need to
> run everywhere.
> Some scripts are launched manually in a terminal.
> Others are launched via windows' gui interface.
> Others are launched through our build process (cmake based, but also manual
> Makefile)
> And others are launched via bash scripts.
> And possible several other scenario I've forgot.
>
> On windows, most users use Cygwin to do their terminal based business (`git`,
> `cmake`, ...).
>
> The issue is: There is no reliable way to launch a python script.
>
> The command:
>
> python myscript.py
>
> launches python3 on windows and python2 on 99% of the unix market.
>
> The command
>
> python3 myscript.py
The windows version would be
py myscript.py
If you have python 2 and 3 installed then
py -3 myscript
py.exe can run any installed version of python and if only one is installed
that it will default to the one of only.
re: use venv
Do not see the need to add venv complexity to the mix just to start an
installed python.
The py.exe can run any installed version of python. I use that all the time
when testing against
multiple versions.
py -2.7-32 myscript.py
py -2.7-64 mysctipt.py
...
py -3.7-64 myscript.py
>
> does not run on windows with the latest python distribution I've played with
> (sorry if it has been fixed recently, this whole mail becomes pointless).
>
> Human can learn which command to run, it's ok. But for all other invocations
> context, this becomes very annoying.
Switching between linux and Windows requires all sorts of different UI to be
aware of.
How to get a terminal prompt, how to get a directory listing, etc.
> Surprisingly, `cmake` is the more friendly, since `FindPython` will returns
> a python3 first.
>
> At the moment, we have scripts that run under version 2 when run by a linux
> user and version 3 on windows. This works by pure luck.
>
> If the standard python distro would just provide a simple `python3`
> binary/alias, then all the stars would align perfectly.
> the basic shebang
>
> #! /usr/bin/env python3
This does work out of the box because py.exe is run when you execute a .py in
the CMD.
C:\> my-py3-script.py
Note: Installing python2 seems to prevent py.exe getting setup for .py files.
You can check by doing:
assoc .py
ftype Python.File
If Python.File is not using py.exe then you can fix that with this command from
an Admin CMD.
ftype Python.File="C:\windows\py.exe" "%1" %*
Barry
>
> would work everywhere by default, without requiring any tweaking (install a
> python3 alias on windows, or ask linux users to change the default `python`
> symlink)
>
> I'm sure, I'm far from being the first user complaining about that. Sorry if
> the request has been been made numerous time before.
>
> What it the status on this point ?
>
> Thanks a lot.
>
> Fred
> _______________________________________________
> Python-ideas mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/[email protected]/message/PTYLAO7YXM4UH3CEI3BRBRALM3AL4HJQ/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/RGNMOOH7GVHIUUDEYFFOT6DNHXYWDT2Z/
Code of Conduct: http://python.org/psf/codeofconduct/