mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +00:00
GH-127724: don't use sysconfig to calculate the venv local include path (#127731)
This commit is contained in:
parent
a8ffe66154
commit
8ac307f0d6
1 changed files with 12 additions and 3 deletions
|
@ -103,8 +103,6 @@ class EnvBuilder:
|
|||
vars = {
|
||||
'base': env_dir,
|
||||
'platbase': env_dir,
|
||||
'installed_base': env_dir,
|
||||
'installed_platbase': env_dir,
|
||||
}
|
||||
return sysconfig.get_path(name, scheme='venv', vars=vars)
|
||||
|
||||
|
@ -175,9 +173,20 @@ class EnvBuilder:
|
|||
context.python_dir = dirname
|
||||
context.python_exe = exename
|
||||
binpath = self._venv_path(env_dir, 'scripts')
|
||||
incpath = self._venv_path(env_dir, 'include')
|
||||
libpath = self._venv_path(env_dir, 'purelib')
|
||||
|
||||
# PEP 405 says venvs should create a local include directory.
|
||||
# See https://peps.python.org/pep-0405/#include-files
|
||||
# XXX: This directory is not exposed in sysconfig or anywhere else, and
|
||||
# doesn't seem to be utilized by modern packaging tools. We keep it
|
||||
# for backwards-compatibility, and to follow the PEP, but I would
|
||||
# recommend against using it, as most tooling does not pass it to
|
||||
# compilers. Instead, until we standardize a site-specific include
|
||||
# directory, I would recommend installing headers as package data,
|
||||
# and providing some sort of API to get the include directories.
|
||||
# Example: https://numpy.org/doc/2.1/reference/generated/numpy.get_include.html
|
||||
incpath = os.path.join(env_dir, 'Include' if os.name == 'nt' else 'include')
|
||||
|
||||
context.inc_path = incpath
|
||||
create_if_needed(incpath)
|
||||
context.lib_path = libpath
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue