ó ’,bc@s×dZddlmZdZddlZddlZddlZddlTddlm Z ddl m Z ddl m Z dd lmZdd lmZdd lmZmZmZdd 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 fd7„ƒYZdS(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_varst change_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/bint unix_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_hometinstallcBs‰eZdZdJdKdLddIdefdMd dId d fdNdOdPddIddfdQdRdSdTdUdVdWdXdYdZgZdd%d(dgZidd 6Zd.„Zd/„Z d0„Z d1„Z d2„Z d3„Z d4„Zd5„Zd6„Zd7„Zd8„Zd9„Zd:„Zd;„Zd<„Zd=„Zd>„Zd?„Zd@„ZdA„ZdB„ZdCefdDefdEefdFefdGdH„fgZRS([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)cCs÷d|_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(tNonetprefixt exec_prefixthomeRt prefix_optiont install_basetinstall_platbasetroottinstall_purelibtinstall_platlibtinstall_headerst install_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_options“s6                         c CsL|js|js|jr=|js-|jr=tdd‚n|jrd|jsX|jrdtd‚n|jr©|jsš|jsš|jsš|jsš|jr©tdƒ‚ntjdkrŻ|jrŻ|j dƒd|_qŻn|j dƒtjdkr|j ƒn |j ƒ|j dƒtjtjƒd }td d ƒ\}}i |jjƒd 6|jjƒd 6|jjƒd6|d6|d d!d6|d |dd6|d6|d 6|d6|d 6|jd6|jd6|_|jƒ|j dƒ|j|jd<|j|jdtunixRs"unknown value for --install-layouts /usr/localtPYTHONUSERBASEt real_prefixR(Rw(R>Rx(R(R#R)R.R+R,R-R/R0R RR1Rt select_schemeR&R$R'R%RORetnormpathRWR3tlowertenviront__dict__(R<((s//usr/lib/python2.7/distutils/command/install.pyRS„sX         $cCsü|jrQ|jdkr'tdƒ‚n|j|_|_|jtjdƒn§|j dk rƒ|j |_|_|jdƒnu|j dkr­tj j t j ƒ|_ n|j |_|_y|jtjƒWn!tk r÷tdtj‚nXdS(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.pyRTįs"   cCsUt|}xDtD]<}d|}t||ƒdkrt||||ƒqqWdS(Ntinstall_(tINSTALL_SCHEMESt SCHEME_KEYSRrR#tsetattr(R<RPtschemetkeytattrname((s//usr/lib/python2.7/distutils/command/install.pyR{śs    cCsˆx|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|jdddgƒdS(NR(R)R*(RŒ(R<((s//usr/lib/python2.7/distutils/command/install.pyR^ s cCs#|jddddddgƒdS(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‚(R…RRr(R<tnamesRPR‹((s//usr/lib/python2.7/distutils/command/install.pyRbs  cCsź|jdkr!|jj|_n|jdk rČt|jƒtkr`tj|jdƒ|_nt|jƒdkr‰|jd}}n0t|jƒdkr°|j\}}n td‚t |ƒ}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 StringTypeRURVtlenR Rt path_fileRg(R<R“Rg((s//usr/lib/python2.7/distutils/command/install.pyRc!s  c GsDx=|D]5}d|}t||t|jt||ƒƒƒqWdS(NR‚(R…R R*Rr(R<RRPR‹((s//usr/lib/python2.7/distutils/command/install.pyRhCs  cCs|js dSttjjdƒƒ}xc|jjƒD]R\}}|j|ƒr5tjj|ƒ r5|j d|ƒtj |dƒq5q5WdS(s#Create directories under ~ Nt~sos.makedirs('%s', 0700)iĄ( RRROReR‰R]t iteritemst startswithtisdirt debug_printtmakedirs(R<R&RPRe((s//usr/lib/python2.7/distutils/command/install.pyR`Hs "cCs¤|jsU|jdƒ|jjdƒj}|jrU|tƒkrUtdƒ‚qUnx!|jƒD]}|j|ƒqbW|j r|j ƒn|j r|j ƒ}|j rīt|j ƒ}x/tt|ƒƒD]}|||||Ć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(RRscompile .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](R!R"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__t descriptionR#R Rotboolean_optionsRpR=RjRRRSRTR{RŒR^R_RbRcRhR`R«RžRŸR±RµR¶R·R¹t sub_commands(((s//usr/lib/python2.7/distutils/command/install.pyRlsŠ    Q Ž  <    "  .         (RRRRR( t__doc__t distutilsRt __revision__RWRORUttypestdistutils.coreRtdistutils.debugRtdistutils.sysconfigRtdistutils.errorsRtdistutils.file_utilRtdistutils.utilRRR R R tsiteR R RXtWINDOWS_SCHEMERƒR„R(((s//usr/lib/python2.7/distutils/command/install.pytsž$