Niaj hnub no, Python yog ib hom lus siv ntau tshaj plaws hauv kev tsim cov khoom siv software tsis yog lawv tus kheej xwb, tab sis kuj muab lawv cov kev tsim kho vaj tse. Yog li ntawd, ntau tus devops, txawm tias los ntawm lawv lub siab nyiam lossis tawm tsam nws, yuav tsum tau kawm ib hom lus tshiab rau tom qab siv los ntxiv rau cov ntawv qub Bash zoo. Txawm li cas los xij, Bash thiab Python tshaj tawm txoj hauv kev sib txawv rau kev sau cov lej thiab muaj qee yam nta, txhais tau hais tias kev xa cov ntawv Bash mus rau "snake language" qee zaum dhau los ua qhov muaj peev xwm thiab deb ntawm txoj haujlwm tsis tseem ceeb.
Txhawm rau ua kom lub neej yooj yim dua rau devops, ntau lub tsev qiv ntawv muaj txiaj ntsig thiab cov khoom siv hauv Python tau tsim thiab txuas ntxiv tsim. Kab lus no piav txog ob lub tsev qiv ntawv tshiab tsim los ntawm tus kws sau ntawv no - ntse-env ΠΈ python-plhaub - thiab tsim los daws cov devops los ntawm qhov yuav tsum tau them nyiaj ntau rau qhov tsis txaus ntseeg ntawm kev ua haujlwm nrog Python, tawm hauv chav rau ntau yam haujlwm nthuav. Lub peev xwm ntawm kev ua haujlwm ntawm cov tsev qiv ntawv yog ib puag ncig hloov pauv thiab tso tawm cov khoom siv sab nraud.
Leej twg xav tau, thov saib miv.
Tshiab "tsheb kauj vab"?
Nws yuav zoo li, vim li cas thiaj tsim cov pob tshiab rau kev ua haujlwm ncaj ncees? Dab tsi tiv thaiv koj ntawm kev siv os.environ thiab subprocess. <txoj kev lossis chav kawm uas koj xaiv> ncaj qha?
Ua ntej sau koj tus kheej lub hlwb, nws tseem ceeb heev uas yuav tsum tau mus online thiab nrhiav cov kev daws teeb meem npaj txhij. Tau kawg, muaj kev pheej hmoo tsis pom qhov koj xav tau, tab sis qhov no yog qhov "kev pov hwm kev tshwm sim". Raws li txoj cai, txoj hauv kev no ua haujlwm thiab txuag ntau lub sijhawm thiab kev siv zog.
Raws li qhov tshwm sim tshawb cov hauv qab no tau nthuav tawm:
muaj cov pob khoom uas tau qhwv hu rau os.environ, tab sis tib lub sij hawm xav tau ib pawg ntawm kev cuam tshuam kev ua haujlwm (tsim ib qho piv txwv ntawm chav kawm, tshwj xeeb tsis nyob hauv kev hu, thiab lwm yam);
Muaj cov pob khoom zoo, uas, txawm li cas los xij, nruj me ntsis khi rau ib qho ecosystem tshwj xeeb (feem ntau lub vev xaib zoo li Django) thiab yog li ntawd tsis yog txhua qhov thoob ntiaj teb tsis muaj ntaub ntawv;
muaj tsawg sim ua tej yam tshiab. Piv txwv li, ntxiv ntaus ntawv thiab qhia meej meej qhov sib txawv ntawm qhov muaj nuj nqis los ntawm kev hu xov tooj zoo li
get_<typename>(var_name)
Los yog ntawm no ib qho ntxiv, uas, txawm li cas los xij, tsis txhawb nqa tam sim no kev txaj muag Python 2 (uas, txawm li cas los xij official RIP, tseem muaj cov roob uas sau code thiab tag nrho cov ecosystems);
muaj cov tsev kawm ntawv-cov tub ntxhais kawm khoom siv tes ua, tsis muaj laj thawj vim li cas lawv tau xaus rau hauv PyPI sab saud thiab tsuas yog tsim teeb meem nrog lub npe ntawm cov pob khoom tshiab (tshwj xeeb, lub npe "smart-env" yog qhov tsim nyog ntsuas).
Thiab daim ntawv teev npe no tuaj yeem mus ntev. Txawm li cas los xij, cov ntsiab lus saum toj no tau txaus ua rau kuv zoo siab txog lub tswv yim ntawm kev ua ib yam dab tsi yooj yim thiab universal.
Thaum kawg, tag nrho cov no twb paub lawm. Nov yog ib qho piv txwv ntawm kev siv:
from smart_env import ENV
print(ENV.HOME) # Equals print(os.environ['HOME'])
# assuming you set env variable MYVAR to "True"
ENV.enable_automatic_type_cast()
my_var = ENV.MY_VAR # Equals boolean True
ENV.NEW_VAR = 100 # Sets a new environment variable
Raws li koj tuaj yeem pom los ntawm qhov piv txwv, ua haujlwm nrog chav kawm tshiab, koj tsuas yog xav tau import nws (koj tsis tas yuav tsim ib qho piv txwv - rho tawm qhov kev txiav txim ntxiv). Kev nkag mus rau txhua qhov kev hloov pauv ib puag ncig yog ua tiav los ntawm kev xa mus rau nws raws li qhov sib txawv ntawm ENV chav kawm, uas, qhov tseeb, ua rau cov chav kawm no muaj kev nkag siab zoo rau cov txheej txheem ib puag ncig, thaum tib lub sijhawm tig nws mus rau qhov khoom tsim tau rau yuav luag txhua qhov system ( Ib txoj hauv kev zoo sib xws, piv txwv li, ua tiav hauv Django, tsuas yog muaj cov khoom teeb tsa yog qhov teeb tsa module / pob nws tus kheej).
Enabling/disabling lub automatic typing support hom yog tiav siv ob txoj kev - enable_automatic_type_cast() thiab disable_automatic_type_cast(). Qhov no tuaj yeem yooj yim yog tias qhov hloov pauv ib puag ncig muaj cov khoom zoo li JSON lossis txawm tias tsuas yog Boolean tas li (tseem ceeb teeb tsa qhov sib txawv ntawm DEBUG hauv Django los ntawm kev sib piv ib puag ncig hloov pauv nrog " siv tau" cov hlua yog ib qho ntawm cov xwm txheej feem ntau). Tab sis tam sim no tsis tas yuav tsum tau hloov cov hlua kom meej meej - feem ntau ntawm cov haujlwm tsim nyog tau muab tso rau hauv qhov tob ntawm lub tsev qiv ntawv thiab tsuas yog tos lub teeb liab los ua. π Feem ntau, kev ntaus ntawv ua haujlwm pob tshab thiab txhawb nqa yuav luag txhua yam muaj nyob hauv cov ntaub ntawv (frozenset, complex thiab bytes tsis tau sim).
Qhov yuav tsum tau txhawb nqa Python 2 tau ua tiav nrog qhov tsis muaj kev txi (kev tso tseg ntawm kev ntaus ntawv thiab qee qhov "qab zib qab zib" ntawm qhov tseeb versions ntawm Python 3), tshwj xeeb, ua tsaug rau ubiquitous rau (los daws cov teeb meem ntawm kev siv metaclasses. ).
Tab sis muaj qee qhov kev txwv:
Python 3 kev txhawb nqa txhais tau hais tias version 3.5 thiab siab dua (lawv muaj nyob hauv koj qhov project yog qhov tshwm sim ntawm kev tub nkeeg lossis tsis xav tau kev txhim kho, vim nws nyuaj los nrog lub hom phiaj vim li cas koj tseem nyob ntawm 3.4);
Lub tsev qiv ntawv kuj muaj ib qho kev zam rau hauv cov ntaub ntawv parsing yuam kev. Yog tias txoj hlua tsis tuaj yeem lees paub los ntawm ib qho ntawm cov khoom ntsuas muaj, tus nqi tseem tshuav ib txoj hlua (xws li, vim li cas ntawm qhov yooj yim thiab rov qab sib raug zoo nrog cov logic li niaj zaus ntawm kev hloov pauv ua haujlwm hauv Bash).
python-plhaub tsev qiv ntawv
Tam sim no kuv mam li qhia koj txog lub tsev qiv ntawv thib ob (Kuv mam li tshem tawm cov lus piav qhia ntawm qhov tsis txaus ntawm cov analogues uas twb muaj lawm - nws zoo ib yam li tau piav qhia rau smart-env. Analogues - S, SΡS, ΠΈ S, SΡS,).
Feem ntau, lub tswv yim ntawm kev siv thiab cov kev xav tau rau nws zoo ib yam li cov uas tau piav qhia rau smart-env, raws li tau pom los ntawm qhov piv txwv:
from python_shell import Shell
Shell.ls('-l', '$HOME') # Equals "ls -l $HOME"
command = Shell.whoami() # Equals "whoami"
print(command.output) # prints your current user name
print(command.command) # prints "whoami"
print(command.return_code) # prints "0"
print(command.arguments) # prints ""
Shell.mkdir('-p', '/tmp/new_folder') # makes a new folder