setup.py: Get prefix directly from sys instead of distutils #4809
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For #4796.
distutils
setup.py
does:https://github.com/python/cpython/blob/master/Lib/distutils/sysconfig.py
get_config_var("prefix")
callsget_config_vars().get("prefix")
, which initialised it as_config_vars['prefix'] = PREFIX
, wherePREFIX = os.path.normpath(sys.prefix)
sysconfig
There's also a
sysconfig
module in the stdlib:This is almost identical to the one in
distutils
:get_config_var("prefix")
callsget_config_vars().get("prefix")
, which initialised it as_CONFIG_VARS['prefix'] = _PREFIX = _PREFIX
, wherePREFIX = os.path.normpath(sys.prefix)
https://github.com/python/cpython/blob/master/Lib/sysconfig.py
I tried our
setup.py
with:Which passed on all CI jobs except MSYS MINGW32 and MINGW64 because the drive letter changed:
os.path.normpath(sys.prefix)
I didn't dig into why they're different, but can we skip
distutils.sysconfig
andsysconfig
altogether and useos.path.normpath(sys.prefix)
directly?