1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
# DP: Add schemes 'deb_system' and 'posix_local', make the latter the default
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
@@ -32,6 +32,30 @@
'scripts': '{base}/bin',
'data': '{base}',
},
+ 'deb_system': {
+ 'stdlib': '{installed_base}/lib/python{py_version_short}',
+ 'platstdlib': '{platbase}/lib/python{py_version_short}',
+ 'purelib': '{base}/lib/python3/dist-packages',
+ 'platlib': '{platbase}/lib/python3/dist-packages',
+ 'include':
+ '{installed_base}/include/python{py_version_short}{abiflags}',
+ 'platinclude':
+ '{installed_platbase}/include/python{py_version_short}{abiflags}',
+ 'scripts': '{base}/bin',
+ 'data': '{base}',
+ },
+ 'posix_local': {
+ 'stdlib': '{installed_base}/lib/python{py_version_short}',
+ 'platstdlib': '{platbase}/lib/python{py_version_short}',
+ 'purelib': '{base}/local/lib/python{py_version_short}/dist-packages',
+ 'platlib': '{platbase}/local/lib/python{py_version_short}/dist-packages',
+ 'include':
+ '{installed_base}/local/include/python{py_version_short}{abiflags}',
+ 'platinclude':
+ '{installed_platbase}/local/include/python{py_version_short}{abiflags}',
+ 'scripts': '{base}/local/bin',
+ 'data': '{base}',
+ },
'posix_home': {
'stdlib': '{installed_base}/lib/python',
'platstdlib': '{base}/lib/python',
@@ -162,7 +186,7 @@
_PYTHON_BUILD = is_python_build(True)
if _PYTHON_BUILD:
- for scheme in ('posix_prefix', 'posix_home'):
+ for scheme in ('posix_prefix', 'posix_home', 'posix_local', 'deb_system'):
_INSTALL_SCHEMES[scheme]['include'] = '{srcdir}/Include'
_INSTALL_SCHEMES[scheme]['platinclude'] = '{projectbase}/.'
@@ -200,7 +224,12 @@
def _get_default_scheme():
if os.name == 'posix':
# the default scheme for posix is posix_prefix
- return 'posix_prefix'
+ if 'real_prefix' in sys.__dict__ or 'VIRTUAL_ENV' in os.environ:
+ # virtual environments
+ return 'posix_prefix'
+ else:
+ # Debian default
+ return 'posix_local'
return os.name
@@ -485,7 +514,7 @@
else:
inc_dir = _sys_home or _PROJECT_BASE
else:
- inc_dir = get_path('platinclude')
+ inc_dir = get_path('platinclude', 'posix_prefix')
return os.path.join(inc_dir, 'pyconfig.h')
|