Python

Virtuaalsed keskkonnad Python 3-s

Virtuaalsed keskkonnad Python 3-s
Nagu enamik inimesi, vihkan ma ka ebavajalike pakettide installimist oma tööjaama. Kui olete nendega valmis, ei piisa nende desinstallimisest kunagi. Pakettidest jäävad maha tonni kaustu ja faile. Nad vajavad palju muid (ebaselgeid) pakette, mis ka asjade järel maha jäävad. Aeglaselt, kuid kindlasti kogunevad need asjad teie tööjaama ja ehkki need ei pruugi teie kettaruumi märkimisväärset osa katta, võivad need põhjustada muid probleeme.

Vanemad sõltuvused

Vanemad paketid võivad püsida ja teie Pythoni kood kasutab neid meeleldi. See pole probleem, kui teie Pythoni skriptid on mõeldud töötama kohapeal, mitte tööstuslikel eesmärkidel. Andmeteadlased, üliõpilased ja isegi igapäevaseid ülesandeid automatiseerivad tavalised inimesed saavad vanemaid pakette lihtsalt probleemideta jätkata.

Probleem algab siis, kui saadate oma koodi tootmisse. Kui seda teete, saadate suure tõenäosusega lihtsalt oma põhiskripti ja mitte kõik paketisõltuvused. Näiteks kui olete kirjutanud mikroteenuse, mis tarnitakse funktsioonina AWS Lambda, võivad esimesed read realiseerida päringumooduli järgmiselt:

imporditaotlus

AWS lambda pakutav päringupakett erineb teie vanemast ja seetõttu võib programm kokku kukkuda.

Konfliktid

Konfliktid võivad tulla ka olukorda, kus erinevad projektid kasutavad sama paketi erinevaid versioone. Võib-olla vajavad mõned teie vanemad projektid vanemaid pip-pakette. Kuid võib-olla vajate uuemat paketti teiste projektide jaoks. Käivitatakse pip install -U uuendab paketti kogu teie operatsioonisüsteemis, tekitades probleeme, kui pöördute tagasi oma vanemate projektide hooldamise juurde.

Pythoni virtuaalsed keskkonnad

Kui kasutate mõnda Pythoni versiooni üle 3.5, saate sisseehitatud mooduli nimega venv luua nn Pythoni virtuaalsed keskkonnad. See moodul loob isoleeritud kausta või kataloogi, kus kõik teie pip-paketid ja muud sõltuvused saaksid elada. Kaust sisaldab ka 'aktiveeri' skripti. Alati, kui soovite kasutada mõnda virtuaalset keskkonda, käivitate selle skripti, pärast mida pääseb juurde ainult selles kaustas olevatele pakettidele. Kui käivitate pip installi, installitakse paketid sellesse kausta ega mujale. Kui olete keskkonna kasutamise lõpetanud, saate selle lihtsalt "deaktiveerida" ja siis on teile saadaval ainult globaalsed pip-paketid.

Kui kasutate Ubuntu 18.04 ja uuemad, ei pea te isegi kogu süsteemi pipipaketi haldurit installima. Pip saab teie virtuaalses keskkonnas eksisteerida ainult siis, kui eelistate seda nii.

Venvi installimine ja virtuaalsete keskkondade loomine

Ubuntu 18.04 LTS tuleb karbist välja koos Python 3-ga.6.x, kuid Pythoni venv-moodulit pole installitud, samuti pole pipi. Paigaldame lihtsalt venv.

$ apt install python3-venv

Järgmisena läheme kataloogi, kus soovite oma virtuaalse keskkonna kataloogi luua. Minu jaoks on see ~ / project1

$ cd ~ / projekt1

Looge oma venv järgmise käsuga. Pange tähele, et my-env on lihtsalt selle keskkonna nimi, võite selle nimetada mis iganes soovite:

$ python3 -m venv my-env

Märkus. Mõned Python3 installid, näiteks Windowsis saadaval olevad, helistate Pythoni interpretaatorisse, kasutades lihtsalt pythoni ja mitte python3, kuid see muutub süsteemiti. Järjepidevuse huvides kasutan ainult python3.

Pärast käsu täitmise lõpetamist märkate uut kausta ~ / project1 / my-evn. My-env virtuaalse keskkonna aktiveerimiseks peate:

  1. Jookse,
    $ source ~ / project1 / my-env / bin / activate kui kasutate Bashi.
    On olemas alternatiivseid skripte, mida nimetatakse aktiveerimiseks.kala ja aktiveerige.csh inimestele, kes kasutavad vastavalt kala ja csh kestasid.
  2. Windowsis saab skripti käivitada, käivitades:
    >.\ my-env \ Scripts \ aktiveeri.nahkhiir kui kasutate käsuviiba, või,
    >.\ my-env \ Scripts \ aktiveeri.ps1 kui kasutate PowerShelli.

Virtuaalsete keskkondade kasutamine

Kui skript on edukalt käivitatud, märkate, et viip muutub midagi sellist, nagu allpool näidatud, saate nüüd pakette installida pipi abil:

(my-env) $ pip3 installipäringud
## Saame installitud paketid loetleda käsuga 'pip freeze'
(my-env) $ pip3 külmutatakse
sertifikaat == 2018.10.15
chardet == 3.0.4
idna == 2.7
pkg-ressursid == 0.0.0
taotlused == 2.20.1
urllib3 == 1.24.1

Niikaua kui virtuaalne keskkond on aktiivne (vastavalt viipale), salvestatakse kõik paketid ainult virtuaalse keskkonna kataloogi (my-env), olenemata sellest, kus te failisüsteemis asute.

Virtuaalkeskkonnast väljumiseks võite sisestada viipale deaktiveeri ja pöördute tagasi Pythoni kogu süsteemi installimise poole. Võite märgata, et äsja installitud uusi pakette ei kuvata globaalses pipi installis.

Virtuaalkeskkonnast vabanemiseks kustutage lihtsalt mooduli käivitamise järel loodud kaust my-env. Nendest keskkondadest saate luua nii palju kui soovite.

Järeldus

Venv mooduliga on virtuaalsed keskkonnad nüüd Pythoni standardfunktsioonina saadaval, eriti kui installite Pythoni kaudu.org. Varem oli meil palju kolmandate osapoolte rakendusi nimega virtualenv, pyenv jne.

Sellest sündis üha rohkem pundunud tarkvara nagu Anaconda, mis on eriti populaarne andmeteadlaste seas. Hea, kui omate lõpuks lihtsustatud tööriista Pythoni pakettide haldamiseks, ilma et peaksite installima palju muud mitteseotud rämpsposti. Venvist saate lähemalt lugeda siit.

Kuidas FPS-i suurendada Linuxis?
FPS tähistab Kaadrit sekundis. FPS-i ülesanne on mõõta kaadrisagedust video taasesitamisel või mängude esitamisel. Lihtsamalt öeldes nimetatakse iga s...
Parimad Oculus App Lab mängud
Kui olete Oculuse peakomplekti omanik, peate olema teadlik külglaadimisest. Kõrvalaadimine on protsess, millega installitakse peakomplekti mitte-poesi...
10 parimat mängu, mida Ubuntu kaudu mängida
Windowsi platvorm on olnud üks mängude domineerivaid platvorme, kuna tohutu protsent mänge areneb täna Windowsi loomupäraseks toetamiseks. Kas keegi s...