[Python-Dev] configure produces a non-working Makefile in some scenarios, due to ASDLGEN

Ned Deily nad at acm.org
Mon Oct 29 00:19:36 CET 2012


In article <20121028194043.09415a50 at pitrou.net>,
 Antoine Pitrou <solipsis at pitrou.net> wrote:

> On Sun, 28 Oct 2012 18:24:36 +0000 (UTC)
> Vinay Sajip <vinay_sajip at yahoo.co.uk> wrote:
> > In some scenarios, configure produces a Makefile which fails because 
> > ASDLGEN
> > doesn't point to a working Python. In particular, it seems to assume that 
> > if
> > there is an executable called e.g. "python3.4" on the path, then that will 
> > be a
> > system Python.
> > 
> > In my perhaps unusual but IMO perfectly valid setup, I have various Python 
> > repos
> > set up like so:
> > 
> > $HOME/projects/python
> >                  |
> >                  +- default
> >                  |
> >                  +- 3.3
> >                  |
> >                  + and so on for 3.2, 3.1, 2.7
> > 
> > In order to facilitate testing some script against multiple Python 
> > versions, I
> > have shell scripts in $HOME/bin named python3.4, python3.3 etc. which just 
> > run
> > the programs in the relevant directories in $HOME/projects/python/. (I know 
> > I
> > can do this using aliases etc., but I think that's beside the point.)
> > 
> > When I run configure in the repo for the default branch, it appears to look 
> > for
> > a Python on the path named python3.4, finds one in $HOME/bin, and thus 
> > generates
> > an ASDLGEN value of "python3.4". If I happen to have a built Python in the
> > default repo, then the script in $HOME/bin will successfully run that, and 
> > all
> > appears well; but if I clean the default repo and re-run make, it fails at 
> > the
> > ASDLGEN step, because the $HOME/bin/python3.4 script fails, due to not 
> > being
> > able to invoke $HOME/projects/python/default/python.
> > 
> > Is this a bug in configure, or is my configuration regarded as too perverse 
> > to
> > support?
> 
> The latter IMO :)

Not at all, IMO :)

This behavior is a change recently introduced by the changesets 
associated with http://bugs.python.org/issue16262.  Previously, the 
first `python` on $PATH was used if asdl_c.py needed to be run in the 
Makefile.  You now have the opportunity to override the behavior at 
./configure time by using the PYTHON variable to specify the path to the 
Python executable you want to use for the asdl_c.py step, as in:

   ./configure ... PYTHON=/usr/bin/python2.7

-- 
 Ned Deily,
 nad at acm.org



More information about the Python-Dev mailing list