2626
2727_INSTALL_SCHEMES = {
2828 'posix_prefix' : {
29- 'stdlib' : '{installed_base}/{platlibdir}/python {py_version_short}' ,
30- 'platstdlib' : '{platbase}/{platlibdir}/python {py_version_short}' ,
31- 'purelib' : '{base}/lib/python {py_version_short}/site-packages' ,
32- 'platlib' : '{platbase}/{platlibdir}/python {py_version_short}/site-packages' ,
29+ 'stdlib' : '{installed_base}/{platlibdir}/{implementation_lower} {py_version_short}' ,
30+ 'platstdlib' : '{platbase}/{platlibdir}/{implementation_lower} {py_version_short}' ,
31+ 'purelib' : '{base}/lib/{implementation_lower} {py_version_short}/site-packages' ,
32+ 'platlib' : '{platbase}/{platlibdir}/{implementation_lower} {py_version_short}/site-packages' ,
3333 'include' :
34- '{installed_base}/include/python {py_version_short}{abiflags}' ,
34+ '{installed_base}/include/{implementation_lower} {py_version_short}{abiflags}' ,
3535 'platinclude' :
36- '{installed_platbase}/include/python {py_version_short}{abiflags}' ,
36+ '{installed_platbase}/include/{implementation_lower} {py_version_short}{abiflags}' ,
3737 'scripts' : '{base}/bin' ,
3838 'data' : '{base}' ,
3939 },
4040 'posix_home' : {
41- 'stdlib' : '{installed_base}/lib/python ' ,
42- 'platstdlib' : '{base}/lib/python ' ,
43- 'purelib' : '{base}/lib/python ' ,
44- 'platlib' : '{base}/lib/python ' ,
45- 'include' : '{installed_base}/include/python ' ,
46- 'platinclude' : '{installed_base}/include/python ' ,
41+ 'stdlib' : '{installed_base}/lib/{implementation_lower} ' ,
42+ 'platstdlib' : '{base}/lib/{implementation_lower} ' ,
43+ 'purelib' : '{base}/lib/{implementation_lower} ' ,
44+ 'platlib' : '{base}/lib/{implementation_lower} ' ,
45+ 'include' : '{installed_base}/include/{implementation_lower} ' ,
46+ 'platinclude' : '{installed_base}/include/{implementation_lower} ' ,
4747 'scripts' : '{base}/bin' ,
4848 'data' : '{base}' ,
4949 },
7575 # Downstream distributors who patch posix_prefix/nt scheme are encouraged to
7676 # leave the following schemes unchanged
7777 'posix_venv' : {
78- 'stdlib' : '{installed_base}/{platlibdir}/python {py_version_short}' ,
79- 'platstdlib' : '{platbase}/{platlibdir}/python {py_version_short}' ,
80- 'purelib' : '{base}/lib/python {py_version_short}/site-packages' ,
81- 'platlib' : '{platbase}/{platlibdir}/python {py_version_short}/site-packages' ,
78+ 'stdlib' : '{installed_base}/{platlibdir}/{implementation_lower} {py_version_short}' ,
79+ 'platstdlib' : '{platbase}/{platlibdir}/{implementation_lower} {py_version_short}' ,
80+ 'purelib' : '{base}/lib/{implementation_lower} {py_version_short}/site-packages' ,
81+ 'platlib' : '{platbase}/{platlibdir}/{implementation_lower} {py_version_short}/site-packages' ,
8282 'include' :
83- '{installed_base}/include/python {py_version_short}{abiflags}' ,
83+ '{installed_base}/include/{implementation_lower} {py_version_short}{abiflags}' ,
8484 'platinclude' :
85- '{installed_platbase}/include/python {py_version_short}{abiflags}' ,
85+ '{installed_platbase}/include/{implementation_lower} {py_version_short}{abiflags}' ,
8686 'scripts' : '{base}/bin' ,
8787 'data' : '{base}' ,
8888 },
104104else :
105105 _INSTALL_SCHEMES ['venv' ] = _INSTALL_SCHEMES ['posix_venv' ]
106106
107+ def _get_implementation ():
108+ return 'Python'
107109
108110# NOTE: site.py has copy of this function.
109111# Sync it when modify this function.
@@ -121,7 +123,7 @@ def joinuser(*args):
121123
122124 if os .name == "nt" :
123125 base = os .environ .get ("APPDATA" ) or "~"
124- return joinuser (base , "Python" )
126+ return joinuser (base , _get_implementation () )
125127
126128 if sys .platform == "darwin" and sys ._framework :
127129 return joinuser ("~" , "Library" , sys ._framework ,
@@ -135,29 +137,29 @@ def joinuser(*args):
135137 _INSTALL_SCHEMES |= {
136138 # NOTE: When modifying "purelib" scheme, update site._get_path() too.
137139 'nt_user' : {
138- 'stdlib' : '{userbase}/Python {py_version_nodot_plat}' ,
139- 'platstdlib' : '{userbase}/Python {py_version_nodot_plat}' ,
140- 'purelib' : '{userbase}/Python {py_version_nodot_plat}/site-packages' ,
141- 'platlib' : '{userbase}/Python {py_version_nodot_plat}/site-packages' ,
142- 'include' : '{userbase}/Python {py_version_nodot_plat}/Include' ,
143- 'scripts' : '{userbase}/Python {py_version_nodot_plat}/Scripts' ,
140+ 'stdlib' : '{userbase}/{implementation} {py_version_nodot_plat}' ,
141+ 'platstdlib' : '{userbase}/{implementation} {py_version_nodot_plat}' ,
142+ 'purelib' : '{userbase}/{implementation} {py_version_nodot_plat}/site-packages' ,
143+ 'platlib' : '{userbase}/{implementation} {py_version_nodot_plat}/site-packages' ,
144+ 'include' : '{userbase}/{implementation} {py_version_nodot_plat}/Include' ,
145+ 'scripts' : '{userbase}/{implementation} {py_version_nodot_plat}/Scripts' ,
144146 'data' : '{userbase}' ,
145147 },
146148 'posix_user' : {
147- 'stdlib' : '{userbase}/{platlibdir}/python {py_version_short}' ,
148- 'platstdlib' : '{userbase}/{platlibdir}/python {py_version_short}' ,
149- 'purelib' : '{userbase}/lib/python {py_version_short}/site-packages' ,
150- 'platlib' : '{userbase}/lib/python {py_version_short}/site-packages' ,
151- 'include' : '{userbase}/include/python {py_version_short}' ,
149+ 'stdlib' : '{userbase}/{platlibdir}/{implementation_lower} {py_version_short}' ,
150+ 'platstdlib' : '{userbase}/{platlibdir}/{implementation_lower} {py_version_short}' ,
151+ 'purelib' : '{userbase}/lib/{implementation_lower} {py_version_short}/site-packages' ,
152+ 'platlib' : '{userbase}/lib/{implementation_lower} {py_version_short}/site-packages' ,
153+ 'include' : '{userbase}/include/{implementation_lower} {py_version_short}' ,
152154 'scripts' : '{userbase}/bin' ,
153155 'data' : '{userbase}' ,
154156 },
155157 'osx_framework_user' : {
156- 'stdlib' : '{userbase}/lib/python ' ,
157- 'platstdlib' : '{userbase}/lib/python ' ,
158- 'purelib' : '{userbase}/lib/python /site-packages' ,
159- 'platlib' : '{userbase}/lib/python /site-packages' ,
160- 'include' : '{userbase}/include/python {py_version_short}' ,
158+ 'stdlib' : '{userbase}/lib/{implementation_lower} ' ,
159+ 'platstdlib' : '{userbase}/lib/{implementation_lower} ' ,
160+ 'purelib' : '{userbase}/lib/{implementation_lower} /site-packages' ,
161+ 'platlib' : '{userbase}/lib/{implementation_lower} /site-packages' ,
162+ 'include' : '{userbase}/include/{implementation_lower} {py_version_short}' ,
161163 'scripts' : '{userbase}/bin' ,
162164 'data' : '{userbase}' ,
163165 },
@@ -459,6 +461,8 @@ def _init_config_vars():
459461 _CONFIG_VARS ['platbase' ] = _EXEC_PREFIX
460462 _CONFIG_VARS ['projectbase' ] = _PROJECT_BASE
461463 _CONFIG_VARS ['platlibdir' ] = sys .platlibdir
464+ _CONFIG_VARS ['implementation' ] = _get_implementation ()
465+ _CONFIG_VARS ['implementation_lower' ] = _get_implementation ().lower ()
462466 try :
463467 _CONFIG_VARS ['abiflags' ] = sys .abiflags
464468 except AttributeError :
0 commit comments