„Python“

Virtuali aplinka „Python 3“

Virtuali aplinka „Python 3“
Kaip ir dauguma žmonių, aš nekenčiu įdiegti nereikalingų paketų savo darbo vietoje. Po to, kai baigsite su jais, niekada nepakanka jų pašalinti. Paketai palieka tonų aplankų ir failų. Jie reikalauja daugybės kitų (neaiškių) paketų, kurie taip pat liko po dalykų. Lėtai, bet neabejotinai šie dalykai kaupiasi jūsų darbo stotyje ir, nors jie gali nepadaryti jokios reikšmingos vietos jūsų diske, jie gali sukelti kitų problemų.

Vyresnio amžiaus priklausomybės

Senesni paketai gali užtrukti ir jūsų „Python“ kodas juos mielai naudos. Tai nėra problema, jei jūsų „Python“ scenarijai skirti veikti vietai, o ne pramoniniams tikslams. Duomenų mokslininkai, studentai ir net įprasti žmonės, automatizuojantys savo kasdienę užduotį, gali be jokių problemų naudoti senesnius paketus.

Problema prasideda, kai išsiunčiate kodą į gamybą. Tai padarę, tikėtina, kad tiesiog atsiųsite savo pagrindinį scenarijų, o ne visas paketų priklausomybes. Pvz., Jei parašėte mikropaslaugą, kurią norite išsiųsti kaip AWS Lambda funkciją, pirmosios kelios eilutės gali importuoti užklausos modulį taip:

importo užklausa

„AWS lambda“ pateiktas užklausų paketas skirsis nuo jūsų senesnio, todėl programa gali sugesti.

Konfliktai

Taip pat gali kilti konfliktų, kai skirtingi projektai naudoja skirtingas to paties paketo versijas. Galbūt kai kuriems iš jūsų senesnių projektų reikia senesnių „pip“ paketų. Bet jums gali prireikti naujesnio paketo kitiems projektams. Vykdomas „pip install -U“ atnaujins paketą visoje jūsų OS, sukeldamas problemų, kai grįšite prie senesnių projektų priežiūros.

„Python“ virtualios aplinkos

Jei naudojate bet kurią „Python“ versiją virš 3.5, naudodami integruotą modulį, vadinamą „venv“, galite sukurti vadinamąsias „Python“ virtualias aplinkas. Šis modulis sukuria izoliuotą aplanką ar katalogą, kuriame gali gyventi visi jūsų paketai ir kitos priklausomybės. Kataloge taip pat yra „aktyvuoti“ scenarijus. Kai norite naudoti tam tikrą virtualią aplinką, paprasčiausiai paleiskite šį scenarijų, po kurio bus galima pasiekti tik šiame aplanke esančius paketus. Jei paleisite „pip install“, paketai bus įdiegti šiame aplanke ir niekur kitur. Baigę naudoti aplinką, galite ją tiesiog „išaktyvinti“ ir tada jums bus prieinami tik visuotiniai pip paketai.

Jei naudojate „Ubuntu 18“.04 ir naujesnių versijų, jums net nereikia įdiegti „pip“ paketų tvarkyklės visoje sistemoje. „Pip“ gali egzistuoti tik jūsų virtualioje aplinkoje, jei jums taip patinka.

„Venv“ diegimas ir virtualių aplinkų kūrimas

„Ubuntu 18“.04 LTS išeina iš dėžutės su „Python 3“.6.x, bet „Python venv“ modulis nėra įdiegtas, taip pat nėra ir „pip“. Įdiekime tiesiog venv.

$ apt įdiekite python3-venv

Tada einame į katalogą, kuriame norite sukurti savo virtualiosios aplinkos katalogą. Man tai ~ / project1

$ cd ~ / project1

Sukurkite savo „venv“ naudodami šią komandą, atkreipkite dėmesį, kad „my-env“ yra tik tos aplinkos pavadinimas, galite jį pavadinti taip, kaip norite:

$ python3 -m venv my-env

Pastaba: Kai kurie „Python3“ diegimai, pvz., Prieinami „Windows“, skambinate į „Python“ vertėją naudodami tik „python“, o ne „python3“, tačiau tai keičiasi iš sistemos į sistemą. Siekdamas nuoseklumo naudosiu tik python3.

Baigę komandą, pastebėsite naują aplanką ~ / project1 / my-evn. Norėdami suaktyvinti „my-env“ virtualią aplinką, turėsite:

  1. Bėk,
    $ source ~ / project1 / my-env / bin / activ jei naudojate „Bash“.
    Yra alternatyvių scenarijų, vadinamų aktyvuoti.žvejoti ir aktyvuoti.csh žmonėms, kurie naudoja žuvį ir csh kriaukles.
  2. „Windows“ scenarijų galima iškviesti vykdant:
    >.\ my-env \ Scripts \ aktyvuoti.šikšnosparnis jei naudojate komandų eilutę, arba,
    >.\ my-env \ Scripts \ aktyvuoti.ps1 jei naudojate „PowerShell“.

Virtualioji aplinka

Sėkmingai paleidę scenarijų, pastebėsite, kad raginimas pasikeis į kažką panašaus į tai, kas parodyta žemiau, dabar galite įdiegti paketus naudodami „pip“:

(my-env) $ pip3 diegimo užklausos
## Mes galime išvardyti įdiegtus paketus naudodami komandą „pip freeze“
(my-env) $ pip3 užšaldyti
sertifikatas == 2018 m.10.15
chardet == 3.0.4
idna == 2.7
pkg-resources == 0.0.0
prašymai == 2.20.1
urllib3 == 1.24.1

Kol virtuali aplinka bus aktyvi (kaip rodo raginimas), visi paketai bus išsaugoti tik virtualios aplinkos kataloge („my-env“), nesvarbu, kur esate failų sistemoje.

Norėdami išeiti iš virtualios aplinkos, galite įvesti deactivate į raginimą ir grįšite naudoti visos sistemos „Python“ diegimą. Galite pastebėti, kad nauji paketai, kuriuos ką tik įdiegėme, nebus rodomi pasauliniame „pip“ diegime.

Norėdami atsikratyti virtualios aplinkos, tiesiog ištrinkite aplanką „my-env“, kuris buvo sukurtas paleidus modulį. Galite sukurti tiek aplinkų, kiek norite.

Išvada

Su „venv“ moduliu virtualios aplinkos dabar yra prieinamos kaip standartinė „Python“ funkcija, ypač jei diegiate iš „Python“.org. Anksčiau mes turėjome daugybę trečiųjų šalių diegimų, vadinamų virtualenv, pyenv ir kt.

Tai sukėlė vis daugiau išpūstos programinės įrangos, tokios kaip „Anaconda“, ypač populiari tarp duomenų mokslininkų. Gerai pagaliau turėti supaprastintą įrankį „Python“ paketams valdyti nereikalaujant įdiegti daugybės kitų nesusijusių šiukšlių. Daugiau apie venv galite paskaityti čia.

Naudingi įrankiai „Linux“ žaidėjams
Jei jums patinka žaisti žaidimus „Linux“ sistemoje, yra tikimybė, kad galbūt naudojote tokias programas ir įrankius kaip „Wine“, „Lutris“ ir „OBS Stud...
„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...
Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...