[Python-Dev] Bilingual scripts

R. David Murray rdmurray at bitdance.com
Tue May 28 17:41:23 CEST 2013


On Tue, 28 May 2013 11:35:00 -0400, Barry Warsaw <barry at python.org> wrote:
> On May 24, 2013, at 04:23 PM, R. David Murray wrote:
> 
> >Gentoo has a (fairly complex) driver script that is symlinked to all
> >of these bin scripts.  The system then has the concept of the
> >"current python", which can be set to python2 or python3.  The default
> >bin then calls the current default interpreter.  There are also
> >xxx2 and xxx3 versions of each bin script, which call the 'current'
> >version of python2 or python3, respectively.
> >
> >I'm sure one of the gentoo devs on this list can speak to this more
> >completely...I'm just a user :)  But I must say that the system works
> >well from my point of view.
> 
> Interesting approach, but it doesn't seem to me to be fundamentally different
> than the BPOS (big pile o' symlinks).
> 
> Over in Debian-land one of the interesting points against a driver script was
> that folks like to be able to explicitly override the shebang line
> interpreter, e.g.
> 
> $ head /usr/bin/foo
> #! /usr/bin/python3 -Es
> $ python3.4 /usr/bin/foo
> ...
> 
> One other person mentioned they like to be able to execfile() - or the Python
> 3 moral equivalent - the /usr/bin script, which obvious would be harder with a
> sh or binary driver script.

True.  Another big disadvantage is that you can't just look in the file to
find out what it is doing, which I *do* find be a significant drawback.
I have the same complaint about setuptools entry-point scripts, where
I still haven't figured out how to go from what is in the file to the
code that actually gets called.

--David


More information about the Python-Dev mailing list