- Izindawo ze-Python ezihlanganisiwe zihlukanisa ukuncika ngephrojekthi ngayinye, zivimbele izingxabano zenguqulo futhi zenze ukufakwa kuphinde kukhiqizwe kuyo yonke imishini.
- Amathuluzi afana ne-venv, i-virtualenv kanye ne-Conda ahlinzeka ngesendlalelo sokuhlukaniswa, kuyilapho i-pip ilawula ukufakwa nge-requirements.txt kanye ne-workflows yesitayela sokukhiya.
- Abaphathi bamaphrojekthi banamuhla njengePoetry, i-pdm kanye ikakhulukazi i-UV bahlanganisa isixazululo sokuxhomekeka, ama-virtualenv, ukukhiya, ukwakha kanye nokushicilela.
- Ama-Lockfiles, ukuhlanganiswa kwe-IDE kanye nemithethonqubo yemvelo ecacile kubalulekile ukugcina ukuthuthukiswa kwe-Python yamaphrojekthi amaningi kushesha, kuthembekile futhi kuphephile.

Ukusebenza nePython kumaphrojekthi angokoqobo kuveza ngokushesha iqiniso elibuhlungu: ukufakwa kwePython eyodwa yomhlaba wonke akwanele. Uma nje uhlanganisa izinhlelo zokusebenza ezingaphezu kwesisodwa, uhlangabezana nezingxabano zokuthembela, ukungafani kwenguqulo kanye nenkinga yakudala ethi “iyasebenza emshinini wami”. Uhlelo lokusebenza olulodwa ludinga i-Django 2.2, olunye ludinga i-Django 4.2, ipayipi ledatha linamathela kuma-panda 1.3, kuyilapho incwajana ilindele ama-panda 2.0 – ukufaka yonke into ohlelweni lonke kumane nje kudinga inkinga.
Izindawo zePython ezihlangene nezihlukanisiwe ziyindlela yokuphuma kulolu daba. Ngokuhlanganisa izindawo ezingokoqobo, abaphathi bokuthembela banamuhla bathanda PIP, UConda, Izinkondlo, I-Pipenv, pm kanye namathuluzi asebenza kahle kakhulu njenge uv, unganika iphrojekthi ngayinye inguqulo yayo ye-Python kanye nesethi yamaphakheji, ugcine i-OS Python yakho ingaphazamisekile, futhi uphinde ukhiqize ngokwethembeka amasethingi kuyo yonke imishini, amapayipi e-CI/CD kanye namaseva okukhiqiza.
Kungani izindawo ezihlangene zePython zibaluleke kangaka
Okubalulekile kuzo zonke izinhlelo zokusebenza zemvelo isidingo sokuhlukanisa ukuncika phakathi kwamaphrojekthi. Ukufakwa kwe-Python okwabelwana ngakho, okubanzi ohlelweni kungabamba inguqulo eyodwa kuphela yelabhulali ngayinye, kodwa amaphrojekthi angempela awavami ukuvumelana ngenguqulo eyodwa. Uma i-App A ifaka iphakheji ku-1.0 futhi i-App B idinga i-3.0, ukufaka eyodwa emhlabeni wonke kuzophula enye ngokungenakugwenywa.
Izindawo ezingokoqobo zixazulula lokhu ngokudala iziqondisi zokufaka ezihlukene, ngayinye inomhumushi wayo we-Python kanye namaphakheji esayithi. Cabanga ngendawo ngayinye njengendawo yayo encane yePython: iphrojekthi eyodwa ingase isebenzise iFlask 1.1, enye iFlask 2.0, ngaphandle kokunyathelana. Ukubuyekeza umtapo wolwazi endaweni eyodwa kushiya wonke amanye amaphrojekthi engathinteki.
Lokhu kuzihlukanisa kubaluleke kakhulu ezindaweni zeqembu kanye nokusetshenziswa komkhiqizo. Ngaphandle kwayo, unjiniyela ofaka isibuyekezo "esincane" angaphazamisa isevisi endala ngokuzumayo, noma umsebenzi we-CI ungadlula ngenkathi ukukhiqiza kwehluleka ngoba izinguqulo zomtapo wolwazi ziyahlukahluka. Izindawo, amafayela okukhiya kanye nokufakwa okuphindaphindwayo kususa lokho kungahleliwe.
Izinqubo zokusebenza ezihlanganisiwe zihlose ukuletha konke lokhu ngaphansi kochungechunge olulodwa lwamathuluzi oluhambisanayo. Esikhundleni sokuxuba ngesandla i-pip, i-venv, i-virtualenv, i-pyenv, i-Conda, i-requirements.txt kanye nezikripthi ze-shell ezingahleliwe, amathuluzi esimanje afana ne-UV azama ukunikeza isikhombikubona esisodwa esivumelanayo sokudala izindawo, ukuxazulula ukuxhomeka, izinguqulo zokukhiya, ukusebenzisa imiyalo ngisho nokwakha nokushicilela amaphakheji.
Izindawo ezingokoqobo ze-Classic Python: i-venv ne-virtualenv
Impendulo eyakhelwe ngaphakathi yePython ezindaweni ezihlukanisiwe yi venv imodyuli, eyethulwe ku-Python 3.3. Ithunyelwa ngePython 3, ngakho-ke awudingi ukufaka noma yini eyengeziwe. venv imvelo imane nje iyisiqondisi esiqukethe umhumushi we-Python, umtapo wolwazi ojwayelekile, pip kanye nezikripthi zokusebenzisa.
Ukuze udale indawo ebonakalayo eyisisekelo, uvame ukusebenzisa umyalo ofana nalona: python -m venv .venv kusuka ngaphakathi kufolda yakho yephrojekthi. Lokhu kudala .venv/ isiqondisi esinakho konke okudingekayo ukuze kusebenze uhlelo lwakho lokusebenza lulodwa. Sebenzisa igama .venv igcina ifihliwe kuma-file explorer amaningi nama-terminals, futhi igwema ukungqubuzana ne .env amafayela asetshenziselwa iziguquguquko zemvelo.
Uma usudaliwe, uvula imvelo ukuze igobolondo lakho lisebenzise leyo Python esikhundleni sesistimu. Ku-Windows usebenzisa into efana nale .venv\Scripts\activate; ku-Unix noma ku-macOS ovame ukuyisebenzisa source .venv/bin/activate. Kwamanye amagobolondo afana nalawa csh or inhlanzi, ezinye izikripthi zokwenza kusebenze ezifana activate.csh futhi activate.fish ahlinzekwa.
Ngemva kokusebenzisa, isixwayiso sakho sivame ukukhombisa igama lendawo kanye python futhi pip imiyalo ithunyelwa ngokuzenzakalelayo kuleyo ndawo. Ungafaka amalabhulali, usebenzise izikripthi, futhi ulungise ikhodi ngaphandle kokuthinta amaphakheji omhlaba wonke. Uma usuqedile, kulula deactivate ikubuyisela ohlelweni lwe-Python.
Ngaphambi venv kwakukhona, onjiniyela basebenzisa kakhulu ithuluzi lesithathu virtualenv, futhi isathandwa kakhulu. virtualenv isebenza ezinguqulweni ezindala zePython (kufaka phakathi iPython 2) futhi inikeza izinketho ezengeziwe, njengokukhetha umhumushi othize one --python=/path/to/python, ukudala izindawo ezisheshayo ngokusebenzisa ukulungiswa, noma ukulawula ukuthi amaphakheji esayithi lomhlaba wonke ayabonakala yini.
Umbono womqondo: izindawo njengekhishi elihlukanisiwe lekhodi yakho
Imodeli yengqondo ewusizo ukuzibona njengompheki onezitsha eziningi ezihlukile. Esikhundleni sokushintsha njalo iresiphi eyodwa eyinhloko, ugcina amakhophi ahlukene kokuhlolwa ngakunye. Ikhophi ngayinye ingasebenzisa izithako zayo, amasu kanye nesikhathi ngaphandle kokufaka engozini isidlo sokuqala. Izindawo ezibonakalayo ze-Python zisebenza kanjalo: iphrojekthi ngayinye ithola iresiphi yayo kanye ne-pantry yayo yezithako.
Ngamagama angokoqobo, indawo ebonakalayo ye-Python iyisihlahla sesiqondisi esizimele. Kufaka phakathi umhumushi othile we-Python, umtapo wolwazi ojwayelekile, kanye ne-local site-packages isiqondisi, kanye nesethi yezikripthi zokwenza kusebenze. Uma kusebenze, ukungenisa kanye nokufakwa kwamaphakheji kungena kulowo muthi kuphela, hhayi kumafayela akho esistimu yomhlaba wonke.
Uma amaphrojekthi amaningana esebenzisa izinguqulo ezahlukene zomtapo wolwazi ofanayo, lokhu kuzihlukanisa yikona okuwavimbela ukuthi angashayisani. Ungase ube nendawo eyodwa yephrojekthi ye-Vonage + Flask usebenzisa i-Flask 1.1.2, kanye nenye indawo esebenzisa i-Vonage ne-Flask 2.0.1. Zombili zingaphila emshinini ofanayo, kodwa izidingo zazo ziyagcinwa futhi zifakwe ngokwehlukana.
Izindawo ezingokoqobo nazo ziyisisekelo sokugwema ikhanda elithi “kodwa liyasebenza emshinini wami”. Uma ukuncika kwakho sekuthathwe kahle futhi kwamiswa, ozakwethu beqembu kanye namaseva e-CI bangakha kabusha indawo efanayo, banciphise kakhulu iziphazamiso ezimangazayo ezibangelwa umehluko wenguqulo ocashile.
Ukudala nokuphatha izindawo ezingokoqobo isinyathelo ngesinyathelo
Umjikelezo wokuphila oyinhloko wendawo ebonakalayo uhlala ufana: dala, yenza kusebenze, faka amaphakheji, uwasebenzise, bese uvala uma usuqedile. Ukuthi uyasebenza venv, virtualenv noma Conda, iphethini ayishintshi ngempela - yimiyalo kuphela eshintshayo.
With virtualenv, indlela yokusebenza eyisisekelo ibukeka kanje: qala ngokuyifaka nge pip install virtualenv, bese uqinisekisa nge virtualenv --versionUkuze udale indawo, sebenzisa virtualenv my-env noma hlanganisa --python=/usr/bin/python3.12 ukubhekisa kumhumushi othile. Lokhu kukhiqiza my-env/ ifolda equkethe ama-binary akho e-Python kanye neziqondisi zomtapo wolwazi.
Ngemva kokudalwa, uvula indawo ukuze uqale ukuyisebenzisa. Kuzinhlelo ezifana ne-Unix, source my-env/bin/activate wenza iqhinga; ku-Windows usebenzisa izikripthi ezingaphansi my-env\Scripts\. I-shell prompt yakho izobonisa igama lendawo ukuze ubone ukuthi iyiphi esebenzayo njengamanje, kanye nayo yonke pip ukufakwa kuzosetshenziswa kule ndawo kuphela.
Ukufaka izinto ezixhomeke kuzo kuba lula uma indawo iyasebenza. Ungagijima pip install some-package noma iphuzu pip ku-a requirements.txt ifayela nge pip install -r requirements.txtUma ufuna ukuthwebula isethi yamanje yamaphakheji afakiwe, uyasebenza pip freeze > requirements.txt ukuze abanye bakwazi ukuphinda bakhiqize isethaphu esifanayo.
Uma usuqedile ngaleyo ndawo okwamanje, gijima deactivate ukubuyela emuva kunoma yini i-Python igobolondo lakho elaliyisebenzisa ngaphambili. Uma ungasayidingi ngempela indawo ezungezile, ungamane ususe isiqondisi sayo; akukho lutho olumangalisayo ngefolda, kumane kungamafayela akudiski.
Ukusebenzisa i-pip ngempumelelo ngaphakathi kwezindawo ezibonakalayo
Umphathi wephakheji wePython ojwayelekile, pip, iyisixhumi sakho esiyinhloko sokufaka, ukuthuthukisa nokususa amalabhulali endaweni ethile. Uma indawo okuyo isebenza, yonke pip umyalo ulawula leyo ndawo kuphela, hhayi i-Python yohlelo lwakho.
Imiyalelo emincane evamile ifaka phakathi install, uninstall, show, list futhi freeze. Ukufaka inguqulo yakamuva yephakheji kulula njengokuthi pip install package-nameUma udinga inguqulo eqondile, ungasebenzisa == isibonelo, umqhubi pip install requests==2.31.0Ukuqalisa ukufaka futhi kuzothola ukuthi inguqulo isivele ikhona bese kweqa ukufaka kabusha ngaphandle kokuthi ushintshe inguqulo noma wengeze --upgrade.
Ukuze uhlole ukuthi yini efakiwe njengamanje, pip list ikunikeza umbono jikelele, futhi pip show package-name iphrinta imininingwane mayelana nephakheji ethile. Uma udinga isithombe esifundeka ngomshini sokusetshenziswa, pip freeze ikhipha wonke amaphakheji kanye nezinguqulo eziqondile, ozibhalela zona ngokwesiko requirements.txtLelo fayela lingahlala kulawulo lwenguqulo eceleni kwekhodi yakho.
Ukufaka kusukela requirements.txt yindlela odala ngayo indawo kwenye indawo. Osebenza naye, umsebenzi we-CI noma iseva izoqala ngokudala futhi isebenze indawo ebonakalayo, bese isebenza pip install -r requirements.txtNgenxa yokuthi izinguqulo ze-file pin, uthola izindawo ezifanayo cishe kuwo wonke umshini, uma kucatshangwa ukuthi i-OS eyisisekelo kanye nenguqulo ye-Python ziyahambisana.
Ngenkathi pip iguquguquka ngendlela emangalisayo, isezingeni eliphansi ngamabomu, yingakho amathuluzi aphezulu evele phezu kwayo. Amathuluzi afana pip-tools, Poetry, Pipenv futhi uv Yakha phezu komqondo wokufaka ukuncika, kodwa zenze ngokuzenzakalelayo ukulungiswa, ukukhiya, ukuphathwa kwemvelo nokuningi.
Izindawo ze-Conda zemisebenzi enzima yesayensi kanye nedatha
Ngesayensi yedatha, ukufunda komshini kanye nekhodi enzima ngokwezibalo, amaqembu amaningi akhetha Conda njengomphathi wabo wendawo kanye nephakeji. I-Conda ayikholwa ukuthi izilimi zisebenza kahle futhi ingafaka i-Python ngokwayo kanye nemitapo yolwazi yezinga lesistimu efana ne-BLAS, i-LAPACK noma i-CUDA, okwenza kube kuhle kakhulu kuma-stack ayinkimbinkimbi ahlanganisa izingxenye ezihlanganisiwe nezihunyushwe.
Ukuze uqale ngeConda, ufaka i-Anaconda noma i-Miniconda. I-Anaconda iza nenqwaba yamaphakheji afakwe ngaphambilini, kuyilapho i-Miniconda iyisifaki esincane esifaka i-Conda, i-Python kanye nezisekelo ezimbalwa kuphela, okukuvumela ukuthi wengeze konke okunye uma ukudinga. Iningi labathuthukisi lisebenzisa i-Miniconda ukugcina izinto zilula.
Ukudala indawo ye-Conda kwenziwa nge conda create --name my-env, ngokuzithandela ukwengeza python=3.11 noma amaphakheji athile afana numpy or pandas kulayini womyalo ofanayo. I-Conda izoxazulula ukuncika, ilande izakhiwo ezifanele zepulatifomu yakho bese izibeka kufolda yendawo ehlukanisiwe ephethwe yi-Conda uqobo.
Ukuqalisa nokusebenza kungasasebenzi kusingathwa yi- conda activate my-env futhi conda deactivate. Uma sekuyasebenza, faka amaphakheji ane conda install isebenzisa izindawo zokugcina zikaConda, ezivame ukuthumela ama-binary alungiselelwe. Emisebenzini eminingi yokusebenza uhlanganisa iConda nemitapo yolwazi yesayensi esindayo kanye pip ukuze uthole ukuncika okwengeziwe kwe-Python kuphela, faka amaphakheji e-Conda kuqala bese ufaka amaphakheji e-pip ngemuva kwalokho ukuze unciphise izingxabano.
I-Conda ikhanya futhi uma udinga ukuthumela ngaphandle nokulingisa izindawo eziphelele. With conda env export > environment.yml awugcini nje ngokuthwebula amaphakheji e-Python kodwa futhi uthwebula nemethadatha efana neplatifomu neziteshi. Komunye umshini, conda env create -f environment.yml kudala indawo efanayo, enhle kakhulu yokuphinda kukhiqizwe ucwaningo kanye namaphrojekthi okubambisana.
Abaphathi bamaphrojekthi banamuhla: i-pip + venv vs i-Pipenv, izinkondlo, i-pdm kanye ne-uv
Ngokuhamba kwesikhathi, uhlelo lwe-Python luye lwashintsha kusukela ku-“pip + virtualenv + requirements.txt” lwaya kumathuluzi anemibono eminingi ahlanganisa ukuphathwa kokuxhomekeka, izindawo kanye nokupakisha. Nakuba iqembu lesithathu elidala lisasebenza kahle, amaqembu amaningi manje akhetha izindlela zokusebenza ezihlanganisiwe.
Izilungiselelo zendabuko zithembele ku pip futhi virtualenv or venv, ngobuciko obuklanywe ngesandla requirements.txt Ifayela. Udala indawo ebonakalayo mathupha, uyivule, ufake izinto ezixhomeke kuyo futhi ugcine indlela yakho yokuqandisa nokuthuthukisa. Le ndlela iguquguquka kakhulu kodwa futhi kulula ukuyilungisa kabi uma amaqembu engaqondiswanga.
Pipenv ilethe isikhombimsebenzisi esisezingeni eliphezulu ngokuhlanganisa ukuphathwa kokuxhomekeka nokudalwa okuzenzakalelayo kwe-virtualenv. Iyasebenza Pipfile futhi Pipfile.lock ukuchaza nokufaka imininingwane yokuxhomekeka kwakho. Ngokomlando, isinqumo nokusebenza kukaPipenv kokuthembela kanye nokusebenza kwakhe kwakuhamba kancane, okwaphoqa abantu ukuthi bacabangele ezinye izindlela.
Poetry iyaqhubeka ngokunikeza umphathi wephrojekthi ophelele ophatha ukuncika, ukwakha kanye nokushicilela ngethuluzi elilodwa. Kuncike kwesimanje pyproject.toml ejwayelekile (PEP 621) futhi ibhala poetry.lock ifayela ngefomethi ye-TOML. Izinkondlo zivame ukuba namandla ekuxazululeni ukuncika, zisekela imikhawulo yenguqulo kahle futhi zenza ukushicilelwa ku-PyPI kube lula ngemiyalo efana nokuthi poetry publish.
pdm ngomunye umphathi wesimanje osebenzisa futhi pyproject.toml futhi igxile ekusebenzeni okusheshayo nokuhambisana ne-PEP. Isekela kokubili izindawo ezingokoqobo kanye nezindlela ezihlukile ezifana ne-PEP 582 (yasendaweni) __pypackages__ izincwajana), futhi inikeza izixazululo ezithuthukisiwe kanye nezici zokuphathwa kwephrojekthi ezifana nezinkondlo, kuyilapho kubekwa phambili isivinini kanye nokuguquguquka.
Ezikhathini zamuva, uv ivele njengethuluzi elisebenza kahle kakhulu, elihlangene elihlose ukufana ne-Cargo for Python. Izibeka njenge-binary eyodwa ebhalwe ku-Rust ehlanganisa amakhono amaningi: ukulungiswa kokuxhomekeka, ukuphathwa kwemvelo, ukufakwa kwenguqulo ye-Python, ukwenziwa kwesikripthi, ukukhiya, ukwakha kanye nokushicilela.
Yini eyenza i-UV ivelele ezindaweni ezihlangene zePython
uv iklanyelwe ukufaka esikhundleni samathuluzi amaningi ahlukene ngokunikeza umsebenzi osheshayo kakhulu nohlanganisiwe. Izilinganiso ezivela kuphrojekthi zibonisa ukuthi ishesha cishe izikhathi ezingu-8-10 kune-pip kanye ne-pip tools ezingenayo i-cache kanye neshesha cishe izikhathi ezingu-80-115 uma usebenzisa i-cache, okwenza ukuvumelanisa noma ukudala kabusha izindawo kuzwakale kushesha.
Emongweni wayo, i-UV inikeza i-API yephrojekthi ephatha ukuphathwa kokuxhomekeka, ukudalwa kwemvelo, amafayela okukhiya kanye nokusebenza kwamathuluzi. Imiyalo efana uv init i-bootstrap iphrojekthi entsha enesakhiwo esiyisisekelo: a pyproject.toml, a .python-version ifayela kanye nesiqalisi main.pyLokhu kukunikeza ukwakheka okuvumelanayo cishe okungenakho ukusethwa ngesandla.
Lapho ugijima uv add some-package, i-UV idala ngokuzenzakalelayo i- .venv imvelo (uma kudingeka), izibuyekezo pyproject.toml futhi ubhala uv.lock Ifayela. Ifayela lokukhiya liqopha izinguqulo ezixazululiwe kanye nama-hashes aqondile kukho konke ukuncika, okuqinisekisa ukufakwa okuphinde kukhiqizwe. Ngokungafani namanye amathuluzi amaningi, uv.lock iyipulatifomu eminingi ngokusobala, ngakho-ke ifayela elifanayo lingasetshenziswa ku-Linux, Windows kanye ne-macOS ngenkathi lisaqinisekisa imiphumela eqinisekile.
Esinye isici esinamandla uv run, esebenzisa imiyalo endaweni yephrojekthi ngaphandle kokudinga ukuthi uyivule ngesandla kuqala. Ngaphambi kokusebenzisa, i-UV iqinisekisa ukuthi imvelo ihambisana nogesi wamanje pyproject.toml futhi uv.lock, ngakho-ke awusebenzisi ikhodi ngephutha ngokumelene nokuxhomekeka okudala. Lokhu kunciphisa ukungqubuzana kokuvamile uv sync or uv lock izingcingo.
Ukusetshenziswa kwe-UV okukhawulelwe, kanye kuphela kwamathuluzi omugqa wemiyalo, uvx futhi uv tool run. Le miyalo ikuvumela ukuthi usebenzise ama-CLI njenge black, pytest or pyinstaller ngaphandle kokuzifaka unomphela njengezixhomeke kumaphrojekthi. Ziwusizo kakhulu kumapayipi e-CI noma kumaskripthi lapho udinga khona ithuluzi isikhashana.
Gxila ngokujulile kumodi ye-pip ye-UV kanye nokucushwa kwayo
Enye yezinhloso zokuklama ze-uv ukuba ngcono okungeziwe kwemisebenzi eminingi ye-pip. Ngemisebenzi evamile, ungashintshana ngokoqobo pip install ngoba uv pip install noma sebenzisa uv pip sync ukulingisa ifayela lezimfuneko. Kumaphrojekthi amaningi akhona, lokhu kwenza ukwamukelwa kube lula futhi kube yingozi ephansi.
Lokho kusho ukuthi, i-UV ayiyona i-pip clone ephelele ngamabomu, futhi umehluko oningana uwukuthuthukiswa okuhlosiwe. Isibonelo, i-UV ayifundi amafayela okucushwa kwe-pip afana nalawa pip.conf or PIP_INDEX_URLKunalokho, isebenzisa iziguquguquko zayo zemvelo ezifana UV_INDEX_URL futhi izitolo zilungiselelwe ngaphansi uv.toml noma ku [tool.uv.pip] ingxenye ye pyproject.tomlLokhu kunciphisa ukuhlangana ngengozi ne-semantics eshintshashintshayo ye-pip.
Ukubeka phambili inkomba kungenye indawo lapho i-UV iqinisa khona ukuphepha ngokuzenzakalelayo. Ukuze kuvikelwe ekuhlaselweni kokudideka kokuxhomekeka, i-UV ikhetha ama-indices ephakheji yangaphakathi kune-PyPI lapho womabili enikeza iphakheji enegama elifanayo ngokuzenzakalelayo. Kukhona ifulegi --index-strategy ukulungisa lokhu kuziphatha, kodwa okuzenzakalelayo okuphephile kusiza ukugwema izinkinga ezincane zochungechunge lokuhlinzeka ekusethweni kwezinkampani.
Ngokungafani ne-pip, i-UV yakhelwe ezindaweni ezibonakalayo njengethagethi ezenzakalelayo yokufaka. Imiyalo efana uv pip install futhi uv pip sync izofakwa endaweni esebenzayo njengamanje noma ithole ngokuzenzakalelayo i- .venv isiqondisi kumafolda amanje noma abazali. Lokhu kukususa ekufakweni komhlaba wonke bese kuholela ekuhlukanisweni kwephrojekthi ngayinye ngaphandle kwebhokisi.
Ngokuzenzakalelayo, i-UV yeqa ukuhlanganiswa .py kuya .pyc i-bytecode ngesikhathi sokufakwa, okusiza ukugcina isivinini sayo esivuthayo. I-Python isazoqhubeka nokuhlanganisa ekungeniseni njengoba kudingeka. Uma ukhathalela isikhathi sokuqala kumathuluzi noma izitsha ze-CLI, ungavula i-halen compilation nge --compile-bytecode ukukhiqiza i-bytecode kusengaphambili ngesikhathi sokufaka.
Ama-Lockfiles, ukuthumela kwamanye amazwe kanye nokuxhomekeka kwemithombo eminingi nge-UV
The uv.lock ifayela liyingqikithi yendaba yokuphinda kukhiqizwe kwe-UV. Iwumbhalo we-TOML oqukethe wonke amaphakheji axazululiwe, izinguqulo eziqondile, amarejista omthombo, ama-hashe, ama-URL okulanda, osayizi kanye nezitembu zesikhathi zokulayisha. Ngokungafani ne pyproject.toml, eveza ububanzi benguqulo kanye nenhloso (isibonelo requests >= 2.30), ifayela lokukhiya lichaza isethi enembile yezinto zobuciko okufanele zifakwe.
I-UV ikukhuthaza ukuthi ubophe ifayela lokukhiya ekulawulweni kwenguqulo. Ngaleyo ndlela, noma yimuphi umsebenzi wonjiniyela noma we-CI osebenzayo uv sync or uv pip install ngokusho kwefayela lokukhiya lithola isethi efanayo yokuxhomekeka, kuzo zonke izinhlelo zokusebenza ezisekelwayo. Lokhu kukhulisa kakhulu ukuzethemba lapho kukhishwa izinguqulo ezintsha.
Uma udinga ukusebenzisana namathuluzi endabuko, i-UV ingathumela amanye amafomethi kusuka kufayela layo lokukhiya. Ukusebenzisa imiyalo efana uv export --format requirements.txt or uv export --format pylock.toml, ungakha i-classic requirements.txt amafayela noma amafayela ajwayelekile pylock.toml lokho amanye amathuluzi akuqondayo. Lokhu kwenza ukufuduka kancane kancane kusuka kumapayipi amadala kube lula kakhulu.
Elinye ikhono elithuthukisiwe le-UV ukuphatha kwayo okuguquguqukayo kwezinkomba nemithombo eminingi. In pyproject.toml ungachaza eziningana [[tool.uv.index]] okufakiwe, isibonelo isibuko se-PyPI, inkomba yesondo le-PyTorch yokwakha i-GPU noma irejista yephakheji yangaphakathi, bese uhlela ukuncika okuthile kule mithombo ngaphansi [tool.uv.sources].
Lokhu kusho ukuthi ungakwazi, isibonelo, ukulanda torch kusuka ku-index yesondo le-CUDA eyenziwe ngokwezifiso, okunye ukuthembela ngqo kusuka endaweni yokugcina i-Git, okwesithathu kusuka ku-URL yesondo eliqondile kanye nokunye kusuka endleleni yendawo kwimodi ehlelekayo - konke ngaphakathi kwefayela lephrojekthi elifanayo. Kuyindlela enamandla yokuhlanganisa amagrafu okuxhomekeka ayinkimbinkimbi ngaphandle kokucushwa okuhlakazekile.
Ukwakha, ukushicilela nokusebenzisa amathuluzi nge-UV
Ngaphandle kokuphathwa kokuxhomekeka, i-UV iphinde iphathe ukwakha nokushicilela amaphakheji e-Python. Ukuze usebenzise i-UV njenge-backend yokwakha, pyproject.toml udinga a [build-system] ireferensi yesigaba uv_build, Ngokwesibonelo: requires = ["uv_build >= 0.7.13, < 0.8"] futhi build-backend = "uv_build"Ungakusetha lokhu ngesikhathi sokuqalisa iphrojekthi nge uv init --build-backend uv.
Uma isilungisiwe, iyasebenza uv build idala a dist/ isiqondisi esinomthombo wakho kanye nokusatshalaliswa kwesondo. Lezi zinto zobuciko sezilungele ukulayishwa ku-index oyikhethile noma kurejista yangaphakathi. I-UV ayizishicileli ngokuzenzakalelayo; ukwakha nokushicilela kuyizinyathelo ezihlukene zokugcina ukulawula kucacile.
Ukuze ushicilele, ungeza ukucushwa kwenkomba ngaphansi [[tool.uv.index]] nge publish-url, ngokuvamile ikhomba endaweni yokugcina yokulayisha ye-PyPI. Isibonelo, ungachaza inkomba ebizwa ngokuthi pypi nge url = "https://pypi.org/simple/" futhi publish-url = "https://upload.pypi.org/legacy/". Khona-ke uv publish kuzocindezela ukusatshalaliswa kwakho okwakhiwe lapho, okufana nokusebenzisa twine kodwa kuhlanganiswe nethuluzi elifanayo.
I-Uv iphinde ithuthukise ukusebenza ngamathuluzi e-CLI ngokusebenzisa uvx futhi uv tool run. Esikhundleni sokufaka izinsiza ezifana pytest, black or pyinstaller Uma ungena endaweni yakho unomphela, ungazisebenzisa uma kudingeka. Lokhu kuwusizo ikakhulukazi emisebenzini ye-CI noma imisebenzi yesikhashana lapho ufuna ukugcina ukuncika kwephrojekthi kuncane ngenkathi usakwazi ukufinyelela ohlelweni olucebile lwamathuluzi.
Njengesibonelo esiqinile, uma upakisha uhlelo lokusebenza lwe-Python ku-Windows .exe usebenzisa pyinstaller, i-UV ikunikeza izinketho eziningi. Ungangeza i-pyinstaller njengokuxhomekeka kwephrojekthi nge uv add pyinstaller bese uyiqhuba nge- uv run pyinstaller ..., okuqinisekisa ukuthi ikhiyiwe futhi iyingxenye yendawo yakho. Ngaphandle kwalokho, ukuze uthole umsebenzi wokupakisha osheshayo, kanye kuphela, ungasebenzisa uvx pyinstaller ... ukuyisebenzisa ngaphandle kokufakwa okusemthethweni. Zombili lezi zindlela zisebenza namaphrojekthi amaningi amafayela; i-pyinstaller izolandela amamojula okungenisa kanye nama-bundle, izinsiza kanye namamodeli alandiwe afana ne-Whisper, uma nje ebhekiselwe kahle kukhodi yakho noma kufayela le-spec.
Ukuhlanganisa izindawo nama-IDE, ama-notebook kanye nemisebenzi yokusebenza
Ukuba nezimo eziqinile kuyingxenye nje yendaba - umhleli wakho namathuluzi kumele bawasebenzise ngempela. Ama-IDE adumile njenge-VS Code kanye ne-PyCharm anokusekelwa kwekilasi lokuqala kokuthola nokusebenza ngezindawo ezingokoqobo, futhi i-Jupyter ingawabhalisa njengama-kernel ahlukene.
Ku-VS Code, uvame ukuvumela isandiso sePython ukuthi sizitholele ngokuzenzakalelayo .venv amafolda esihlahleni sakho sephrojekthi. Ube usukhetha umhumushi ofanele nge-“Python: Select Interpreter” kuphalethi yomyalo. Uma usukhethiwe, i-VS Code isebenzisa leyo ndawo ye-terminal yayo ehlanganisiwe, i-debugger kanye nezici zolimi, futhi iyivula ngokuzenzakalelayo uma uvula ama-terminal amasha.
I-PyCharm inikeza ukuhlanganiswa okubushelelezi okufanayo ngokubopha umhumushi othile noma i-virtualenv kuphrojekthi ngayinye. Kusukela ebhokisini lezilungiselelo ungeza i-Virtualenv Environment entsha noma ukhombe ekhona kakade. Ngemva kwalokho, i-PyCharm iyivula ngokungaqondile kuzo zonke izilungiselelo zokuqalisa kanye ne-terminal yayo eyakhelwe ngaphakathi, ngakho-ke akuvamile ukuthi ucabange ngokuyivula ngesandla.
Kuma-notebook e-Jupyter, isinyathelo esibalulekile ukufaka ipykernel endaweni yakho bese uyibhalisa njenge-kernel. Ngemva kokusebenzisa into efana python -m ipykernel install --user --name myenv, indawo yakho izovela njengo-“myenv” ohlwini lwe-Jupyter kernel. Lokhu kwenza kube lula ukugcina ama-notebook ehambisana nendawo yephrojekthi ehambisanayo, kugwenywe ukungafani okucashile.
Kukhona futhi amathuluzi agxile kuma-notebook asusa okuningi kwalokhu. Izixazululo ezihlanganisa abasizi be-AI noma ukuzenzekela kwemvelo, njenge-Jupyter front ends ekhethekile, zingasetha futhi zilondoloze ngokuzenzakalelayo izindawo ezibonakalayo ngemuva ukuze ososayensi bedatha bakwazi ukugxila kakhulu ekuhlolweni futhi banciphise ekufakweni kwamapayipi kwemvelo.
Izingibe ezivamile kanye nemikhuba emihle kakhulu yezindawo ezihlangene
Ngisho nangamathuluzi avuthiwe, kunezinkinga eziphindaphindayo onjiniyela ababhekana nazo lapho bephatha izindawo. Izinkinga ezivamile zifaka phakathi ukusebenzisa umhumushi we-Python ongalungile, izikripthi zokuqalisa ezingekho, amaphutha enqubomgomo yokusebenzisa ku-Windows PowerShell, noma ukufakwa ngengozi ku-Python yomhlaba wonke esikhundleni sendawo ehlosiwe.
Uma indawo yakho igcina inenguqulo ye-Python engalungile, ukulungiswa kwayo ukuyiphinda ngokusobala ngokumelene nomhumushi ofanele. Ngokwesibonelo, python3.11 -m venv .venv or virtualenv --python=/usr/bin/python3.11 .venv kuqinisekisa ukuthi isikhathi sokusebenza esifanele sifakwe endaweni ezungezile. Kumasistimu asebenzisa pyenv, ungaqala ukhethe inguqulo ye-Python yendawo bese udala indawo yakho phezu kwalokho.
Uma izikripthi zokusebenzisa zibonakala zingekho noma ziphukile, ngokuvamile kusho ukuthi indawo ayidalwanga kahle. Ukususa ifolda bese uyidala kabusha ngefayela elifanele python -m venv or virtualenv umyalo uvame ukuxazulula inkinga. Ku-Windows, uma i-PowerShell ivimba ukusebenza, kungadingeka ukhulule inqubomgomo yokusebenzisa yomsebenzisi wamanje.
Ukuze ugweme ukufaka amaphakheji ngengozi ku-Python engalungile, hlola njalo ukuthi iyiphi python futhi pip usebenzisa. Imiyalo efana which python or where python (ku-Windows) kanye python -m site ingaqinisekisa ukuthi ungaphakathi kwendawo elindelekile. Uma izindlela zikhomba izindawo zesistimu esikhundleni sendlela yakho .venv ifolda, vala bese uyivula kabusha ngokucophelela.
Ukuhlanzeka okuhle okuphathelene nokuqamba amagama kanye nokulawula izinhlobo kusiza kakhulu ezindaweni ezinakekelwa kahle. Sebenzisa amagama acacile nahambisanayo ezindawo, khetha indawo eyodwa ngephrojekthi ngayinye, futhi ungalokothi ubophe isiqondisi sendawo uqobo. Esikhundleni salokho, engeza okufakiwe okufana nokuthi .venv/ or venv/ kuya kwakho .gitignore futhi uthembele kumafayela okukhiya namafayela adingekayo ukuze wakhe kabusha izindawo lapho kudingeka khona.
Okokugcina, ukubhala phansi ukuthi ungadala kanjani futhi ubuyekeze kanjani izindawo esigabeni esifushane se-README kusindisa wena kanye nozakwenu besikhathi esizayo kukusindisa kakhulu ukuqagela. Isiqeshana esilula semigqa emibili – isibonelo, python -m venv .venv ulandelwa ngu pip install -r requirements.txt or uv sync - kungenza ukubhalisa kube lula kakhulu futhi kugcine isu lakho elihlanganisiwe lemvelo yePython lihambisana kulo lonke iqembu.
Ngokuhlanganisa amathuluzi akudala afana ne-venv, i-virtualenv, i-pip kanye ne-Conda nabaphathi besimanje njenge-Poetry, i-pdm kanye ne-uv, ungaklama indlela yokusebenza yemvelo ehlanganisiwe esheshayo, ephindaphindwayo futhi ephephile. Iphrojekthi ngayinye ithola indawo yayo ehlukanisiwe, ama-lockfiles aqinisekisa ukufakwa okuqhubekayo, ama-IDE nama-notebook afakwa kalula, futhi amathuluzi asebenza kahle njenge-UV ahlanganisa konke ndawonye ngaphansi kophahla olulodwa, aguqula lokho okwakuyiqoqo lezikripthi elingcolile libe isisekelo esiqinile nesithembekile sokuthuthukiswa kwe-Python okungathi sína.