virtualenv/web/create_python_env.py
author veltr
Tue, 13 Mar 2012 16:15:22 +0100
changeset 168 1de44b71d69c
parent 0 896db0083b76
child 243 1f2840354865
permissions -rw-r--r--
corrected apostrophe bug

"""
Call this like ``python create_python_env.py``; it will
refresh the project-boot.py script

-prerequisite:

- virtualenv
- distribute
- psycopg2 requires the PostgreSQL libpq libraries and the pg_config utility

- python project-boot.py --no-site-packages --clear --ignore-packages=MYSQL  --type-install=local <path_to_venv>
- For Linux :
python project-boot.py --unzip-setuptools --no-site-packages --ignore-packages=MYSQL --clear --type-install=local <path_to_venv>

"""

import os
import subprocess
import re
import sys


here = os.path.dirname(os.path.abspath(__file__))
base_dir = here
script_name = os.path.join(base_dir, 'project-boot.py')

import virtualenv

# things to install
# - psycopg2 -> pip
# - PIL -> pip
# - pyxml -> pip
# - 4Suite-xml - easy_install ftp://ftp.4suite.org/pub/4Suite/4Suite-XML-1.0.2.tar.bz2
# - pylucene  - script

src_base = os.path.abspath(os.path.join(here,"..","res","src")).replace("\\","/")
lib_path = os.path.abspath(os.path.join(here,"..","res","lib")).replace("\\","/")
patch_path = os.path.abspath(os.path.join(here,"res","patch")).replace("\\","/")


EXTRA_TEXT  = "import sys\n"
EXTRA_TEXT += "sys.path.append('%s')\n" % (lib_path)
EXTRA_TEXT += "sys.path.append('%s')\n" % (os.path.abspath(os.path.join(here,"res")).replace("\\","/"))
EXTRA_TEXT += "from res_create_env import generate_install_methods\n"
EXTRA_TEXT += "adjust_options, extend_parser, after_install = generate_install_methods(path_locations, '%s', Logger, call_subprocess)\n" % (src_base)



#f = open(os.path.join(os.path. os.path.join(os.path.dirname(os.path.abspath(__file__)),"res"),'res_create_env.py'), 'r')
#EXTRA_TEXT += f.read()
#EXTRA_TEXT += "\n"
#EXTRA_TEXT += "RES_ENV = ResourcesEnv('%s')\n" % (src_base)

def main():
    python_version = ".".join(map(str,sys.version_info[0:2]))
    text = virtualenv.create_bootstrap_script(EXTRA_TEXT, python_version=python_version)
    if os.path.exists(script_name):
        f = open(script_name)
        cur_text = f.read()
        f.close()
    else:
        cur_text = ''
    print 'Updating %s' % script_name
    if cur_text == 'text':
        print 'No update'
    else:
        print 'Script changed; updating...'
        f = open(script_name, 'w')
        f.write(text)
        f.close()

if __name__ == '__main__':
    main()

2e ^!,445 PCR!S1`*K)yDn Ur5UUYBhe sWr6:Uh2QV%[ HQv˱WouA%:`UW5y}o|m5/ͭp덣M__ڬU`}T.Q{U_W 0`ʇACC!HPCH=n$\Cq JY M*UCwaB*A ǐd 0`yD{A}=A0uuV64447U E/1ʬU2–AUpU~Lj>_aJCC`tTơ֑|aò,S"45UC`HV5U2aj>L BUY d2ӏQ{ G#  +\`wAʬuw<WAp;yFA4<\`wA[[UyF8 d8%}U%B/4:\C+$^)9f 0s)Fx ):հ8*Q9aU)abZls UF꜍7UUv$]_8`d02E2})ꫠn*jJ*%4T0d2Pd`44460`P *PJ}`>t.KEJIS000000000?h4 ```````````jU``````sV*||INUtC̫WƇ!W >z~`/!h5UU =(sU````e^j%Y!xUֆ*|eXj!2إV}#PȕC` VX2ʭ Ȳ`qCAeVBd2VbwCaU*8+Cp*^ ;ʟ.1HU*UҭUW{}ҹUh`uZ h~dX8F CUriVp qV  ! ‘-έea+xWUx0`RH(^+{wP);uP645 [Ɔ(e iUT|d]!,E},{U|!=d_R]hQ9ҭU"!(iP#c`[up```}h005V*(dVJ`X1 5 TC7.!T2&lj*DẪnUn9Qhn45UUC`h:P *u?z00: arCpx@uZև#nQd2hq8j_}}hwb/1 yBp$ *O@{PnH1201  ;|Uc*$ʪ6SsxÁhhp0p2VU?UVe!uT;CqV V*`]ʻ(vt_|80nVUdǠ yΐ;UWYTPʥ 2+$X6JCpU|KK|0`z_8}t9  򨞰``JEC;!Pha)uUC6tV*_[%⪾d>pRC*Զ$0rhm)jS6UjJ<#EqHPUqeڊPʡb!"!j(#n«UV *b%1U2pWV W5V(p +AzA WSb{^;Uw`ʫ!͟uU!JjU d ORU¬NSW*A  > k aUBUpUz ԏ`s. P]jd0eU0hxCPeUZ d8C*#UeXh2htY1X2AV eS**UT494DCPU 9U}r*U`C*ld<#Rn(_xjG}()uRE!&P2j UbU*````````eYVS U 0`ZO)AuU^jЋk*+cC(T `0z%^5pV#YL!օd:U!A)rT㫊 r8Z)T?T, r9~9U`~@t 2L C$]!+Ϋ*`pAHUq̋pVCj+!!*<,1QX UaV*YV*X*ʷVUYVCP448 0`U02P2 eU8hnUs?>{~(nᇕU֕W@'AʰJbrħ`d2|~ ])qP}UJp~ `ʃp`Ɔ:*UWCcces%eYWJV8a8 4~shu>PxT<>A/EX ĦC(<=FCNdP 0`CexP_U!h`;â; 7!Rhh`hd47ہy(~UUx"FCj+ s5 0` -fI-h-hZA*ơ@2E 2 %`X20`VA>M4CCC 2E!! VUjU008 VQ[8" h`e -C* 0`QaVi*~`p>ԋWh~v E N~ O1W_reY b+iWR>C _" 0`_`KއXq EVUheU"PJeWXS:`8|?UC ̊/}VrٍUՕu6 5 *_(|W0b![UhE+"`b*Z6ޯJ;ɍ88?Jt (ʰ000` 0` 0` 0` 0` 0` 0`|W/H i)x_(jj&{^#z*H_*YۚCCH` %eCRȿU< 47[%拨> _zʬ.Jrڭum (n40`TPҭhĦL`,U@䫂dH 0x ~!j  à: #!C tGA`d<*Wj5[U9 Qlh``: Èt9Q2Alp969C:FGAVUux!U69QC%d5 0` ô2hd2CP2DhnniWu{jʲF0`*`d40`qU2xbx\UpT]7 x U bJCCln2{ƆC0d4666[YCPjT8ECC"C =!*d31F8U`h0` CC*UCCPʭUtw 0`UZU]Ƥ<*+P)e 8Ct/{{JyPYCd=G~ >ECZPup>Ce>`s`V`.VNX]ഡ05Eb- *UYă֪!`V=F " 0`"0a'j`jU$jPvUvv*$UJ 2%r;[U`eUZ8d )Uq9U^@Xd2E2U EBԒOCL༪)Ձ`}CR/HpU`ĻRL$=j! 0`/ Ҫy(dOJZ? 7$_>X2攻 \*``b,ĥU!(;TX1U}#J)cCCcSP]a!2I1Jd1KֆU]a 0` 0` 0` 0`U;T5Y H2CUZUZd=8AHʲbj¬Uu!U2Ud4: *jV\!8!sUګvE2殕tujC`櫵W#:aґd8PC!/ UYCT@ <+ E_\JU[8J! 1AY&SY -<c(`s>JJPJ(R" D!P* RDP( R A@JR!@QHQ)T RJ*@ *P(!IRPP )I h &@4hhЍU44 &hѠC44 &hѠA5H  §SѤɚSFO526@$ dГCAAz@SŬ}C #?sZߩʹvUP1k92Z^aHr-*F3*Q%&2Vn AlZ z@ U갋U/ Ue\UX@ISh64F B%D}]H; DKs aRĪ9?3񼵯0eWZݝuvvWG;'Z!~UZʫ}#2*yk39sU ]vBKGU+*wu É^uy|(yqvL㋎G&w*C@֫<è91?%j=z`oW0ʮarU~n*Va$2S@JJR?U]GChyÁ0?W5\Ubzbe[ep``kUh}"#a^0e1ht1C;QqFX=Ccw 0hzt80n%`=G6=p4; pC{~8p?`: x 4<0r1#CC48E` CC!d;0d;#GqGD]vT88P0xC5 h` #C#:èLj71#w0`1tƇQuG<#w4:<~a{!sZ>=:pu^!rAu`=Ðhh9ppph=>!s h6 0`n@5VyA`64a>=4w@.9;`; ha:h>Wq9'|煼1thIR-%,lT5(n8R.*IwԤ‰ҫ$ZeCP_J)2Lr%77UWO|7TW 242YC!UuUycU7n_//C g: vG_?`oy0zxq>sZb#Z^9#WZy%!UOX3跱t;/x4? זp_b<,wY,foÎ!K4`o9㼳˾:%GA=W* 75_Ccơm240b-!d<F?Ch|Ƈ;}CC``xXCr5 ` z:: Av G|: 09ǐxQ`0~CC6698=t`lh{alhx=:P=èz{Q>hr=C;a`hr0~F 44>qƆ 1 Ñ=0840lw attZ:h{phvh0yA4^hx>a0{xwǠcPFC  Áh|F"d41#qiqC`6;cF: Gqp0ll|z ; C8A !:a=!0yGqhp64<hyG?|;Cz c=p6= ltǀ:"8<>Cp4^o)VUV:{@@\<v{0<4@`=C0:C>AWjëfYd!r?֫qU;FUfI /U'qy!EF`3 QU33)`2 ]VU^!hბ[}ÄZK$ X1TjCUVQO!U-:]q̋UQQ,x Q,uvR.1Y(0)': ZkZ kAfhffhփZkZ kAj#Uh"  0` =C D69 E p:C 0` 440` Cè8p8a45 ?`V~L>yczG>2x !cxGx2#`t !GAhhd660`pnl` 0` 0`U\q 0ulhhlhlh`o E 0`%nhh` 0` 0xCCC 0` 0` 0` 0`a~Y xp8T440` 0`(|>Ccð9Vlv#ccC GƆ F|=j PhV">0a` ^_` Cp CjT66640hh`4>#68 d!%&C!{ < 7=r= HyT;44Jlln20`,C499=Flr66?r80r9 ` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0`pU`aGCcC5:F 0`  Q8Gt㑃*ll`0?<2A` 0` 0`dJ;= ø5PCOӎ5V{0p9Ñ84n7ˍ7qGiAc62ޫ}#plp4;CEuZp80`D\ E{IKְ`hh~90`U^8Uq*ぱUqc 0`#*C 0` 0` 0` 0` 0` 0`q+CC C0` hhj0` 0` 44?$0`_~Zpr0` 0`0`򆆇4446;aàr9GAxPq440` 0` 0`?990l`660`^*g,RLU("tZJÊ %`qU*DCq+t2JYC"  }U_|2![WHq%/  j2CVUn  0p440hd8!j!O$:"h!9'q0` 0` =VUq)WP@Wt^(`(`t`0`ʭ DjC!CC` 0xC} U0=TU~8|*lV WүX` 0`44<.)B) RH}d4042Z6(*z%,AUYN E*< `1VFj2hp68*!'Px i0`w0eV 22Cz0` : 0` 0` =U֫2#CC*1v0` 0` 0q"2!UdP42Ud?D+}XJ0eV 2W0`BV%*QOy+d0`ETS`qu+U꫈}uWQ! CPr;Hly0` X|-JWWUSpޠS2E#`Ƈʫ+A¬k }*Rx  ^hwUUU 0eWZ%{hhhllnWn§U*eV 2CX1>{{HU5UU~ABP_~(uA`X0{ƆUj`Z2E0pʫ=^T0w 2TUX0WZtXG6>p4;GasC*Uޫ6 r[֭yFA4INbeUS`V0` UjUZP *PUVSI= 0`h` 5 0` 0kߑ[0`ACʇ#Ƈª  C?*yU x! 0{# UUj*xU|*ACC'l`Uj0xjc>2 C` WV "Vs"uqCUW#!d0`Y Cu ;>UR65UU   H;ʣ*w }CJīw0zƇ?=0j2,#!-C`F (`xCjY%ZtJ<q-}xJxU`lb^r`AګUw!G%]GQ 0`ڪJO{ UiU uqCPc1EI6JjVUV `Y PYU}ʭ MC*X4? CҔ}`5 P2ed,Y)U!!}x UW><*%h}V *jeX`nU{*)O1V Eeb,}W2ʲܿ4:njT꣐8IuWAU0` 0hh`a0b J  JBW(S)LJaGX"Hp0`C0yLSB\Q&lT) Uyʰ1VhP?O6Se-]W0}#C _d,C2 X2 ʭC S҃G|xUeJ)=mC*PVk2pArCp;C<ƂU\w=0x ø0w#!- ; Q4Zx\V%05VlЫ6SY >C}Q%!', TEWj_p=d0`d,202 #$Z * EC^uMp= *zUv  hd41j6 C ü2|< ^* AHv0y4JxUE|)DJ`/|4>eU**"^jj U33``e U`iVAJ*ʽUqU{d0e>@XU*FFʲ68-UqU(dZE*VSp]G#nCwd1I2d;U\U]"VUZ|?E %Y!2vRW!xcC ^pީS[UWqW *7B=65[d7UjE~1 CHEsFP UdJrU`h  \AVB2J E9U44 *V)UC7Uh:AUwPv 0h`CuY!֫UqBnTHC@`7U!}2X0C*&An ZW Kp 0` UX@h4Aʴ;й ȩ 2$)jc%j x UYUrR0nU:.**k!򫊷jU6 JE* 2B`uW245U*eWPZRX}UI\ 0d eVQ*,?=U~`*_  /C C)21*Tye[ZjCpEhd0j5D a+uX>P CUVPd0`*U\``(CP5U0qB U jH`d01 0V,Jp}_}W)0W_|*U,Ii"c,EeVb|00htd1 0= %`0XZj=]L0`"j}jʰ0 eS@|l@J\BΉ^!!!އ_9_BtU9*#=SCCWC6471n `Ur\Y: Á8V`U\*ҩy V ^ d$X1IAd? `lr5Z*CaWU)H$-(`U [U* `?:I`FU« TU:έU]W2E^0J!CP ή5[t OU\PyäVn*U!YN`_E_EXbpyqr2F Map; p<ǐheUUҫuN2TKM6UV5V Y"b/HbUc*VpRQ8|?=U}j dX4bCCD ȕ VV Rlhh!U`A[*V*us:6 !b2!d02LCd1 FCxI}0.$ZJ]w$z;`p=%҇UZTʰ02 0UHr}Ux``l pwUJsUzī\VU[`y LU޴ A AޯAd"%i%QnV*) LUZ42 UZV"0hj2U҉'9/%X =\Hn*Q ]$ZWWF*rUp009wC૽#eSUAȽAzbTd*L*wU=èC/}Z/>A]ǵT;%YH*XTX w C*\^jU^Q*6 BS`eXuJtE{P>c *IK#cU^0j] {JF 2%r;c!`=q2̔^/JØ<ު "b"~"X*h_Q_xg>_A=CQzCև0a+$^jSnCVU\%2%^J EØeCd?RCU"0}\R/=R0`d2"W~J"TJX2s$b,JeXu}*S*~h>zʰ``h`ʭJ0"(d2%,_!`_eV <U@64 N`ʰT QXbU*W Jj`XhjVhh!UCT2!U%`V W+r  C61 h{vHd?|2 lhr9Gr;CpiMV*WtGa95079®D*V?t8\H?,2 P"Ê|T``````xp00001S `7WII_PVIl*# VeDht %ăC%@KoYf-9 i&&gHaERv XĉS)Hwf.Cw9F gT%SM ]4r`h{3Y$Ҁe9z/%9HhV; %,ݴWDҚ'[5:E.=1(l{bS$=NRчpա&zZVEM%RYIlŬ!7i!5 k]BC}V