1515from distutils .util import convert_path , subst_vars , change_root
1616from distutils .util import get_platform
1717from distutils .errors import DistutilsOptionError
18- from site import USER_BASE
19- from site import USER_SITE
2018
19+ # this keeps compatibility from 2.3 to 2.5
20+ if sys .version < "2.6" :
21+ USER_BASE = None
22+ USER_SITE = None
23+ HAS_USER_SITE = False
24+ else :
25+ from site import USER_BASE
26+ from site import USER_SITE
27+ HAS_USER_SITE = True
2128
2229if sys .version < "2.2" :
2330 WINDOWS_SCHEME = {
5158 'scripts' : '$base/bin' ,
5259 'data' : '$base' ,
5360 },
54- 'unix_user' : {
55- 'purelib' : '$usersite' ,
56- 'platlib' : '$usersite' ,
57- 'headers' : '$userbase/include/python$py_version_short/$dist_name' ,
58- 'scripts' : '$userbase/bin' ,
59- 'data' : '$userbase' ,
60- },
6161 'nt' : WINDOWS_SCHEME ,
62- 'nt_user' : {
63- 'purelib' : '$usersite' ,
64- 'platlib' : '$usersite' ,
65- 'headers' : '$userbase/Python$py_version_nodot/Include/$dist_name' ,
66- 'scripts' : '$userbase/Scripts' ,
67- 'data' : '$userbase' ,
68- },
6962 'mac' : {
7063 'purelib' : '$base/Lib/site-packages' ,
7164 'platlib' : '$base/Lib/site-packages' ,
7265 'headers' : '$base/Include/$dist_name' ,
7366 'scripts' : '$base/Scripts' ,
7467 'data' : '$base' ,
7568 },
76- 'mac_user' : {
77- 'purelib' : '$usersite' ,
78- 'platlib' : '$usersite' ,
79- 'headers' : '$userbase/$py_version_short/include/$dist_name' ,
80- 'scripts' : '$userbase/bin' ,
81- 'data' : '$userbase' ,
82- },
69+
8370 'os2' : {
8471 'purelib' : '$base/Lib/site-packages' ,
8572 'platlib' : '$base/Lib/site-packages' ,
8673 'headers' : '$base/Include/$dist_name' ,
8774 'scripts' : '$base/Scripts' ,
8875 'data' : '$base' ,
8976 },
90- 'os2_home' : {
77+ }
78+
79+ # user site schemes
80+ if HAS_USER_SITE :
81+ INSTALL_SCHEMES ['nt_user' ] = {
82+ 'purelib' : '$usersite' ,
83+ 'platlib' : '$usersite' ,
84+ 'headers' : '$userbase/Python$py_version_nodot/Include/$dist_name' ,
85+ 'scripts' : '$userbase/Scripts' ,
86+ 'data' : '$userbase' ,
87+ }
88+
89+ INSTALL_SCHEMES ['unix_user' ] = {
9190 'purelib' : '$usersite' ,
9291 'platlib' : '$usersite' ,
9392 'headers' : '$userbase/include/python$py_version_short/$dist_name' ,
9493 'scripts' : '$userbase/bin' ,
9594 'data' : '$userbase' ,
96- },
97- }
95+ }
96+
97+ INSTALL_SCHEMES ['mac_user' ] = {
98+ 'purelib' : '$usersite' ,
99+ 'platlib' : '$usersite' ,
100+ 'headers' : '$userbase/$py_version_short/include/$dist_name' ,
101+ 'scripts' : '$userbase/bin' ,
102+ 'data' : '$userbase' ,
103+ }
104+
105+ INSTALL_SCHEMES ['os2_home' ] = {
106+ 'purelib' : '$usersite' ,
107+ 'platlib' : '$usersite' ,
108+ 'headers' : '$userbase/include/python$py_version_short/$dist_name' ,
109+ 'scripts' : '$userbase/bin' ,
110+ 'data' : '$userbase' ,
111+ }
98112
99113# The keys to an installation scheme; if any new types of files are to be
100114# installed, be sure to add an entry to every installation scheme above,
@@ -114,8 +128,6 @@ class install (Command):
114128 "(Unix only) prefix for platform-specific files" ),
115129 ('home=' , None ,
116130 "(Unix only) home directory to install under" ),
117- ('user' , None ,
118- "install in user site-package '%s'" % USER_SITE ),
119131
120132 # Or, just set the base director(y|ies)
121133 ('install-base=' , None ,
@@ -167,7 +179,13 @@ class install (Command):
167179 "filename in which to record list of installed files" ),
168180 ]
169181
170- boolean_options = ['compile' , 'force' , 'skip-build' , 'user' ]
182+ boolean_options = ['compile' , 'force' , 'skip-build' ]
183+
184+ if HAS_USER_SITE :
185+ user_options .append (('user' , None ,
186+ "install in user site-package '%s'" % USER_SITE ))
187+ boolean_options .append ('user' )
188+
171189 negative_opt = {'no-compile' : 'compile' }
172190
173191
@@ -319,9 +337,12 @@ def finalize_options(self):
319337 'prefix' : prefix ,
320338 'sys_exec_prefix' : exec_prefix ,
321339 'exec_prefix' : exec_prefix ,
322- 'userbase' : self .install_userbase ,
323- 'usersite' : self .install_usersite ,
324340 }
341+
342+ if HAS_USER_SITE :
343+ self .config_vars ['userbase' ] = self .install_userbase
344+ self .config_vars ['usersite' ] = self .install_usersite
345+
325346 self .expand_basedirs ()
326347
327348 self .dump_dirs ("post-expand_basedirs()" )
0 commit comments