https://github.com/python/cpython/commit/8ac307f0d6834148471d2e12a45bf022e659164c
commit: 8ac307f0d6834148471d2e12a45bf022e659164c
branch: main
author: Filipe Laíns 🇵🇸 <[email protected]>
committer: FFY00 <[email protected]>
date: 2024-12-12T21:41:46Z
summary:
GH-127724: don't use sysconfig to calculate the venv local include path
(#127731)
files:
M Lib/venv/__init__.py
diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py
index ca1af84e6705fe..dc4c9ef3531991 100644
--- a/Lib/venv/__init__.py
+++ b/Lib/venv/__init__.py
@@ -103,8 +103,6 @@ def _venv_path(self, env_dir, name):
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 @@ def create_if_needed(d):
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
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]