This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: python-config.py should be part of the stdlib
Type: enhancement Stage:
Components: Build, Library (Lib) Versions: Python 3.8
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: FFY00, barry, doko, gregory.p.smith, nanjekyejoannah, ncoghlan, petr.viktorin, pitrou, shihai1991
Priority: normal Keywords:

Created on 2018-05-07 12:15 by pitrou, last changed 2022-04-11 14:59 by admin.

Messages (7)
msg316264 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2018-05-07 12:15
Rather than (or in addition to) being a standalone script, python-config should be invokable as a stdlib module, e.g. "python -m sysconfig.config".  This would prevent the risk of invoking the wrong script on PATH.
msg348546 - (view) Author: Matthias Klose (doko) * (Python committer) Date: 2019-07-27 14:39
what are the situations where the path for python and python-config is different?

This proposal doesn't say anything how to retrieve the correct information for cross builds using this module.  From my point of view, python-config should stay outside the standard library.
msg348558 - (view) Author: Hai Shi (shihai1991) * (Python triager) Date: 2019-07-27 18:19
En, looks like just only makefile would call python-config.py.
IMHO, if no out user call this script, looks it move to stdlib would be better.
msg404883 - (view) Author: Joannah Nanjekye (nanjekyejoannah) * (Python committer) Date: 2021-10-23 15:26
I posted on Python-dev (not sure if it will help), I wanted to do this in 2019 but looks like there is still no consensus yet.
msg404901 - (view) Author: Petr Viktorin (petr.viktorin) * (Python committer) Date: 2021-10-23 18:41
It seems it could be moved to sysconfig itself -- the CLI options from python-config would fit there nicely.
msg404930 - (view) Author: Joannah Nanjekye (nanjekyejoannah) * (Python committer) Date: 2021-10-24 13:27
Yes, this was also proposed here: https://bugs.python.org/issue11602
msg404985 - (view) Author: Gregory P. Smith (gregory.p.smith) * (Python committer) Date: 2021-10-25 16:54
`Misc/python-config.in` ultimately becomes a Python script that prints things to stdout.  It isn't written to be a module as is.  Any work to make it one is effectively writing entirely new code to do what it does.

To keep a single source of truth for `python-config` behavior instead of having two as we do today (as doko noted in bpo-16235), while still exposing the values it provides for use from Python I suggest:

1. Get rid of the `Misc/python-config.in` python code.
2. Use `Misc/python-config.sh.in` exclusively.
3. Enhancing _that_ to be able to generate a tiny data-only `sysconfig.configure` module. 
4. Invoke `python-config.sh --generate-sysconfig-bits` during build time to generate a `sysconfig/configure.py`.

This should reduce the maintenance burden and is kinder to cross-compiliation builds (which we generally are lousy at supporting despite their importance to the world, so our bar today is merely "not regressing").


All that said, in what contexts would having anything that python-config produces today be available from sysconfig be useful?
History
Date User Action Args
2022-04-11 14:59:00adminsetgithub: 77620
2021-10-25 16:54:17gregory.p.smithsetnosy: + gregory.p.smith
messages: + msg404985
2021-10-24 13:27:36nanjekyejoannahsetmessages: + msg404930
2021-10-23 18:41:33petr.viktorinsetnosy: + petr.viktorin
messages: + msg404901
2021-10-23 15:40:16FFY00setnosy: + FFY00
2021-10-23 15:26:52nanjekyejoannahsetmessages: + msg404883
2019-07-27 18:19:38shihai1991setnosy: + shihai1991
messages: + msg348558
2019-07-27 14:39:42dokosetmessages: + msg348546
2019-07-26 22:06:24nanjekyejoannahsetnosy: + nanjekyejoannah
2018-05-07 12:15:49pitroucreate