Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/distutils/command/
Upload File :
Current File : //usr/lib/python2.7/distutils/command/install.pyc


|_c@sdZddlmZdZddlZddlZddlZddlTddlm	Z	ddl
mZddlm
Z
dd	lmZdd
lmZddlmZmZmZddlmZdd
lmZddlmZddlmZejdkr1idd6dd6dd6dd6dd6Zn)idd6dd6dd6dd6dd6Zi	idd6dd6dd6dd6dd6d6idd6d d6d!d6d"d6d#d6d$6id%d6d&d6dd6dd6dd6d'6id(d6d(d6d)d6dd6dd6d*6id+d6d+d6d,d6d-d6d.d6d/6ed06id+d6d+d6d1d6d2d6d.d6d36idd6dd6dd6dd6dd6d46id+d6d+d6d,d6d-d6d.d6d56Zd8Zd6e	fd7YZdS(9sFdistutils.command.install

Implements the Distutils 'install' command.i(tlogs$Id$N(t*(tCommand(tDEBUG(tget_config_vars(tDistutilsPlatformError(t
write_file(tconvert_patht
subst_varstchange_root(tget_platform(tDistutilsOptionError(t	USER_BASE(t	USER_SITEs2.2s$basetpurelibtplatlibs$base/Include/$dist_nametheaderss
$base/Scriptstscriptstdatas$base/Lib/site-packagess/$base/lib/python$py_version_short/site-packagess3$platbase/lib/python$py_version_short/site-packagess0$base/include/python$py_version_short/$dist_names	$base/bintunix_prefixs5$base/local/lib/python$py_version_short/dist-packagess9$platbase/local/lib/python$py_version_short/dist-packagess6$base/local/include/python$py_version_short/$dist_names$base/local/bins$base/localt
unix_locals/$base/lib/python$py_version_short/dist-packagess3$platbase/lib/python$py_version_short/dist-packagest
deb_systems$base/lib/pythons$base/include/python/$dist_namet	unix_homes	$usersites4$userbase/include/python$py_version_short/$dist_names
$userbase/bins	$userbaset	unix_usertnts4$userbase/Python$py_version_nodot/Include/$dist_names$userbase/Scriptstnt_usertos2tos2_hometinstallcBseZdZdJdKdLddIdefdMddIdd
fdNdOdPddIddfdQdRdSdTdUdVdWdXdYdZgZdd%d(dgZidd 6Zd.Zd/Z	d0Z
d1Zd2Zd3Z
d4Zd5Zd6Zd7Zd8Zd9Zd:Zd;Zd<Zd=Zd>Zd?Zd@ZdAZdBZdCefdDefdEefdFefdGdHfgZRS([s'install everything from build directorysprefix=sinstallation prefixsexec-prefix=s.(Unix only) prefix for platform-specific filesshome=s+(Unix only) home directory to install undertusers!install in user site-package '%s's
install-base=s;base installation directory (instead of --prefix or --home)sinstall-platbase=s8base installation directory for platform-specific files s$(instead of --exec-prefix or --home)sroot=s<install everything relative to this alternate root directorysinstall-purelib=s;installation directory for pure Python module distributionssinstall-platlib=s8installation directory for non-pure module distributionssinstall-lib=s4installation directory for all module distributions s3(overrides --install-purelib and --install-platlib)sinstall-headers=s(installation directory for C/C++ headerssinstall-scripts=s)installation directory for Python scriptss
install-data=s%installation directory for data filestcompiletcscompile .py to .pyc [default]s
no-compilesdon't compile .py filess	optimize=tOslalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]tforcetfs1force installation (overwrite any existing files)s
skip-builds2skip rebuilding everything (for testing/debugging)srecord=s3filename in which to record list of installed filessinstall-layout=s7installation layout to choose (known values: deb, unix)cCsd|_d|_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_d|_
d|_t|_t|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_dS(Nii(tNonetprefixtexec_prefixthomeRt
prefix_optiontinstall_basetinstall_platbasetroottinstall_purelibtinstall_platlibtinstall_headerstinstall_libtinstall_scriptstinstall_dataRtinstall_userbaseR
tinstall_usersitetinstall_layoutRtoptimizet
extra_pathtinstall_path_fileR!t
skip_buildtwarn_dirt
build_baset	build_libtrecord(tself((s//usr/lib/python2.7/distutils/command/install.pytinitialize_optionss6																			
							cCsL|js|js|jr=|js-|jr=tddn|jrd|jsX|jrdtdn|jr|js|js|js|js|jrtdntjdkr|jr|j	dd|_qn|jdtjdkr|jn
|j
|jdtjtjd	}td
d\}}i|jjd6|jjd
6|jjd6|d6|d	d!d6|d	|dd6|d6|d
6|d6|d6|jd6|jd6|_|j|jd|j|jd<|j|jd<tr;ddlm}dGH||jn|j|jd|jrh|jn|jdkr|jj r|j!|_q|j"|_n|j#dd d!d"d#d$dd|j$|j|_%tj&j'|j|j(|_|j)dk	r(|j*d%dd d!d"d#d$n|jd&|j+d'd*d+dS(,Ns.must supply either prefix/exec-prefix/home or s)install-base/install-platbase -- not boths9must supply either home or prefix/exec-prefix -- not bothsJcan't combine user with with prefix/exec_prefix/home or install_(plat)basetposixs+exec-prefix option ignored on this platformspre-finalize_{unix,other}spost-finalize_{unix,other}()iR$R%t	dist_nametdist_versiont
dist_fullnamet
py_versionitpy_version_shortitpy_version_nodott
sys_prefixtsys_exec_prefixtuserbasetusersitespost-expand_basedirs()tbasetplatbasei(tpprintsconfig vars:spost-expand_dirs()tlibRRRRRtlibbasesafter prepending roottbuildR9R:(s
build_bases
build_base(s	build_libs	build_lib(,R$R%R&R(R)RRtostnametwarnR#t	dump_dirst
finalize_unixtfinalize_othertstringtsplittsystversionRtdistributiontget_nametget_versiontget_fullnameR1R2tconfig_varstexpand_basedirsRRKtexpand_dirstcreate_home_pathR.text_modulesR,R+t
convert_pathsthandle_extra_pathtinstall_libbasetpathtjoint
extra_dirsR*tchange_rootstset_undefined_options(R<RBR$R%RK((s//usr/lib/python2.7/distutils/command/install.pytfinalize_optionss~
	$	










	
	


	cCstrddlm}|dGHx|jD]}|d}|ddkrY|dd!}n||jkrtj|j||}t||}n!tj||}t||}d||fGHq)WndS(Ni(t
longopt_xlatet:it=s  %s: %s(Rtdistutils.fancy_getoptRktuser_optionstnegative_optRUt	translatetgetattr(R<tmsgRktopttopt_nametval((s//usr/lib/python2.7/distutils/command/install.pyRRs	
	cCs|jdk	s|jdk	r|jdkrK|jdkrK|jdksx|jdksx|jdksx|jdkrt	dndS|j
r|jdkrtdn|j|_|_|j
dn|jdk	r|j|_|_|j
dn|j|_|jdkrm|jdk	r:t	dntjjtj|_tjjtj|_n|jdkr|j|_n|j|_|j|_|jr|jjdkr|j
dq|jjdkr|j
d
qt	dn|jr)tjj|jdksGd
tjksGdtjkrW|j
d
n8tjj|jdkr|j
dn
|j
ddS(NsPinstall-base or install-platbase supplied, but installation scheme is incompletes$User base directory is not specifiedRRs*must not supply exec-prefix without prefixtdebRR>tunixRs"unknown value for --install-layouts
/usr/localtPYTHONUSERBASEtreal_prefixR(Rw(sposixRx(R(R#R)R.R+R,R-R/R0RRR1Rt
select_schemeR&R$R'R%RORetnormpathRWR3tlowertenviront__dict__(R<((s//usr/lib/python2.7/distutils/command/install.pyRSsX				$cCs|jrQ|jdkr'tdn|j|_|_|jtjdn|j	dk	r|j	|_|_|jdnu|j
dkrtjjt
j
|_
n|j
|_|_y|jtjWn!tk
rtdtjnXdS(Ns$User base directory is not specifiedt_userRs)I don't know how to install stuff on '%s'(RR1R#RR(R)R{RORPR&R$ReR|RWtKeyError(R<((s//usr/lib/python2.7/distutils/command/install.pyRTs"	
cCsUt|}xDtD]<}d|}t||dkrt||||qqWdS(Ntinstall_(tINSTALL_SCHEMEStSCHEME_KEYSRrR#tsetattr(R<RPtschemetkeytattrname((s//usr/lib/python2.7/distutils/command/install.pyR{s



cCsx|D]y}t||}|dk	rtjdksFtjdkr[tjj|}nt||j}t|||qqWdS(NR>R(	RrR#RORPRet
expanduserRR]R(R<tattrstattrRv((s//usr/lib/python2.7/distutils/command/install.pyt
_expand_attrss
cCs|jdddgdS(NR(R)R*(R(R<((s//usr/lib/python2.7/distutils/command/install.pyR^
s	cCs#|jddddddgdS(NR+R,R.R-R/R0(R(R<((s//usr/lib/python2.7/distutils/command/install.pyR_s	cGs>x7|D]/}d|}t||tt||qWdS(NR(RRRr(R<tnamesRPR((s//usr/lib/python2.7/distutils/command/install.pyRbs

cCs|jdkr!|jj|_n|jdk	rt|jtkr`tj|jd|_nt|jdkr|jd}}n0t|jdkr|j\}}n	tdt	|}nd}d}||_
||_dS(Nt,iiisY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementst(R5R#RYttypet
StringTypeRURVtlenRRt	path_fileRg(R<RRg((s//usr/lib/python2.7/distutils/command/install.pyRc!s 	c	GsDx=|D]5}d|}t||t|jt||qWdS(NR(RR	R*Rr(R<RRPR((s//usr/lib/python2.7/distutils/command/install.pyRhCs

cCs|js
dSttjjd}xc|jjD]R\}}|j|r5tjj|r5|j	d|tj
|dq5q5WdS(s#Create directories under ~
        Nt~sos.makedirs('%s', 0700)i(RRROReRR]t	iteritemst
startswithtisdirtdebug_printtmakedirs(R<R&RPRe((s//usr/lib/python2.7/distutils/command/install.pyR`Hs	"cCs|jsU|jd|jjdj}|jrU|tkrUtdqUnx!|jD]}|j|qbW|j	r|j
n|jr|j}|j
rt|j
}x/tt|D]}|||||<qWn|jt|j|fd|jnttjjtj}ttjj|}tjjtjj|j}|jr|j	oz|jr||krtjd|jndS(NRNs"Can't install when cross-compilings'writing list of installed files to '%s'smodules installed to '%s', which is not in Python's module search path (sys.path) -- you'll have to change the search path yourself(R7trun_commandRYtget_command_objt	plat_nameR8R
Rtget_sub_commandsRtcreate_path_fileR;tget_outputsR*RtxrangetexecuteRtmapROReR|RWtnormcaseR.R6Rtdebug(R<t
build_plattcmd_nametoutputstroot_lentcountertsys_pathR.((s//usr/lib/python2.7/distutils/command/install.pytrunUs6	
	
			!		cCsctjj|j|jd}|jrN|jt||jgfd|n|j	d|dS(Ns.pthscreating %sspath file '%s' not created(
ROReRfRdRR6RRRgRQ(R<tfilename((s//usr/lib/python2.7/distutils/command/install.pyRs		cCsg}xV|jD]H}|j|}x0|jD]"}||kr5|j|q5q5WqW|jr|jr|jtjj|j	|jdn|S(Ns.pth(
Rtget_finalized_commandRtappendRR6ROReRfRd(R<RRtcmdR((s//usr/lib/python2.7/distutils/command/install.pyRscCsCg}x6|jD](}|j|}|j|jqW|S(N(RRtextendt
get_inputs(R<tinputsRR((s//usr/lib/python2.7/distutils/command/install.pyRs
cCs|jjp|jjS(sRReturn true if the current distribution has any Python
        modules to install.(RYthas_pure_modulesthas_ext_modules(R<((s//usr/lib/python2.7/distutils/command/install.pythas_libscCs
|jjS(N(RYthas_headers(R<((s//usr/lib/python2.7/distutils/command/install.pyRscCs
|jjS(N(RYthas_scripts(R<((s//usr/lib/python2.7/distutils/command/install.pyRscCs
|jjS(N(RYthas_data_files(R<((s//usr/lib/python2.7/distutils/command/install.pythas_datasR.R-R/R0tinstall_egg_infocCstS(N(tTrue(R<((s//usr/lib/python2.7/distutils/command/install.pyt<lambda>sN(sprefix=Nsinstallation prefix(sexec-prefix=Ns.(Unix only) prefix for platform-specific files(shome=Ns+(Unix only) home directory to install under(s
install-base=Ns;base installation directory (instead of --prefix or --home)(sroot=Ns<install everything relative to this alternate root directory(sinstall-purelib=Ns;installation directory for pure Python module distributions(sinstall-platlib=Ns8installation directory for non-pure module distributions(sinstall-headers=Ns(installation directory for C/C++ headers(sinstall-scripts=Ns)installation directory for Python scripts(s
install-data=Ns%installation directory for data files(scompileRscompile .py to .pyc [default](s
no-compileNsdon't compile .py files(s	optimize=R slalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](sforceR"s1force installation (overwrite any existing files)(s
skip-buildNs2skip rebuilding everything (for testing/debugging)(srecord=Ns3filename in which to record list of installed files(sinstall-layout=Ns7installation layout to choose (known values: deb, unix)(t__name__t
__module__tdescriptionR#R
Rotboolean_optionsRpR=RjRRRSRTR{RR^R_RbRcRhR`RRRRRRRRtsub_commands(((s//usr/lib/python2.7/distutils/command/install.pyRls
	
	Q			<				
					"		
	.	
										(spurelibsplatlibsheaderssscriptssdata( t__doc__t	distutilsRt__revision__RWRORUttypestdistutils.coreRtdistutils.debugRtdistutils.sysconfigRtdistutils.errorsRtdistutils.file_utilRtdistutils.utilRRR	R
RtsiteRR
RXtWINDOWS_SCHEMERRR(((s//usr/lib/python2.7/distutils/command/install.pyt<module>s$