Subject: bug#45655: Please use 'python3' command instead of 'python'

From: Balint Reczey <[email-masked]>
Date: Wed, 6 Jan 2021 18:47:48 +0100

Hi Glenn,

Thanks for the quick response.

On Wed, Jan 6, 2021 at 5:59 PM Glenn Morris <[email-masked]> wrote:
>
> Balint Reczey wrote:
>
> > Python 2 reached EOL about a year ago thus the 'python' command may be
> > missing on some systems. 'python3' is the standard way of invoking the
> > Python 3 interpreter, thus Emacs would have a better chance trying
> > that.
> >
> > The attached patch is already carried in Ubuntu.
>
> Thanks for the report.
>
> > --- a/lisp/ldefs-boot.el
> > +++ b/lisp/ldefs-boot.el
> > @@ -26539,7 +26539,7 @@
> >
> >  (add-to-list 'interpreter-mode-alist (cons (purecopy "python[0-9.]*") 'python-mode))
> >
> > -(autoload 'run-python "python" "\
> > +(autoload 'run-python "python3" "\
>
> This bit is wrong. Firstly, ldefs-boot is a generated file, and
> secondly, unless Ubuntu is distributing a python3.el, it would just
> break the autoload.
>
> > --- a/lisp/progmodes/python.el
> > +++ b/lisp/progmodes/python.el
> > @@ -1952,7 +1952,7 @@
> >    :group 'python
> >    :safe 'stringp)
> >
> > -(defcustom python-shell-interpreter "python"
> > +(defcustom python-shell-interpreter "python3"
>
> (if (executable-find "python3") "python3" "python")
>
> is probably how Emacs would normally handle this kind of thing.
> Or if defaulting to python3 is better (I guess it is):
>
> (cond ((executable-find "python3") "python3")
>       ((executable-find "python") "python")
>       (t "python3"))

Indeed, that would be better for very old systems.
Could you please land the proper fix or you would like me to rework mine?

Thanks,
Balint

-- 
Balint Reczey
Ubuntu & Debian Developer