Python

Virtuālās vides Python 3

Virtuālās vides Python 3
Tāpat kā lielākā daļa cilvēku, es ienīstu nevajadzīgu pakotņu instalēšanu savā darbstacijā. Pēc tam, kad esat pabeidzis tos, ar to atinstalēšanu nekad nepietiek. Paketes atstāj tonnas mapes un failus. Viņiem ir nepieciešami daudzi citi (neskaidri) iepakojumi, kas arī paliek pēc lietām. Lēnām, bet noteikti šīs lietas tiek izveidotas jūsu darbstacijā, un, lai arī tās var neaizsargāt nevienu ievērojamu daļu no jūsu diska vietas, tās var izraisīt citas problēmas.

Vecākas atkarības

Vecāki iepakojumi var kavēties, un jūsu Python kods tos ar prieku izmantos. Tā nav problēma, ja jūsu Python skripti ir domāti darbībai lokāli, nevis rūpnieciskiem mērķiem. Datu zinātnieki, studenti un pat regulāri cilvēki, kas automatizē ikdienas uzdevumus, var vienkārši turpināt izmantot vecākas pakotnes bez lielām problēmām.

Problēma sākas, nosūtot kodu uz ražošanu. To darot, iespējams, jūs vienkārši nosūtīsit galveno skriptu, nevis visas pakotnes atkarības. Piemēram, ja esat uzrakstījis mikropakalpojumu, kas nosūtāms kā AWS Lambda funkcija, dažas pirmās rindas var importēt pieprasījuma moduli šādi:

importa pieprasījums

Pieprasījumu pakete, ko piegādāja AWS lambda, atšķirsies no vecākās, un tā rezultātā programma var avarēt.

Konflikti

Konflikti var parādīties arī tad, ja dažādos projektos tiek izmantotas dažādas vienas paketes versijas. Varbūt dažiem no jūsu vecākiem projektiem ir nepieciešamas vecākas paketes. Bet jums var būt nepieciešama jaunāka pakete citiem projektiem. Darbojas PIP instalēšana -U atjauninās paketi visā jūsu OS, radot problēmas, kad atgriezīsities pie vecāku projektu uzturēšanas.

Python virtuālās vides

Ja izmantojat jebkuru Python versiju virs 3.5, jūs varat izmantot iebūvēto moduli ar nosaukumu venv, lai izveidotu tā sauktās Python virtuālās vides. Šis modulis ir izveidot izolētu mapi vai direktoriju, kurā var dzīvot visas jūsu paketes un citas atkarības. Mapē ir arī 'aktivizēt' skripts. Ikreiz, kad vēlaties izmantot noteiktu virtuālo vidi, vienkārši palaidiet šo skriptu, pēc kura var piekļūt tikai šajā mapē esošajiem pakotnēm. Ja palaidīsit pip install, pakotnes tiks instalētas šajā mapē un nekur citur. Kad esat pabeidzis vides lietošanu, varat to vienkārši "deaktivizēt", un tad jums būs pieejamas tikai globālās pip paketes.

Ja izmantojat Ubuntu 18.04 un vairāk, jums pat nav jāinstalē pip pakotņu pārvaldnieks visā jūsu sistēmā. Pip var pastāvēt jūsu virtuālajā vidē tikai tad, ja jūs to vēlaties.

Venv instalēšana un virtuālās vides izveide

Ubuntu 18.04 LTS nāk no kastes kopā ar Python 3.6.x, bet Python venv modulis nav instalēts, tāpat nav arī pip. Uzstādīsim tikai venv.

$ apt instalējiet python3-venv

Pēc tam mēs ejam uz direktoriju, kurā vēlaties izveidot virtuālās vides direktoriju. Man tas ir ~ / project1

$ cd ~ / project1

Izveidojiet savu venv ar šādu komandu, ievērojiet, ka my-env ir tikai šīs vides nosaukums, un jūs to varat nosaukt kā vien vēlaties:

$ python3 -m venv my-env

Piezīme: Dažas Python3 instalācijas, piemēram, Windows sistēmā pieejamās, jūs izsaucat Python tulku, izmantojot tikai python, nevis python3, bet tas mainās no sistēmas uz citu. Konsekvences labad es izmantošu tikai python3.

Pēc komandas izpildes pabeigšanas pamanīsit jaunu mapi ~ / project1 / my-evn. Lai aktivizētu virtuālo vidi my-env, jums būs jāveic:

  1. Palaist,
    $ source ~ / project1 / my-env / bin / activ ja lietojat Bash.
    Ir alternatīvi skripti, kurus sauc par aktivizēt.zivis un aktivizēt.csh cilvēkiem, kas attiecīgi lieto zivis un csh čaumalas.
  2. Operētājsistēmā Windows skriptu var izsaukt, palaižot:
    >.\ my-env \ Scripts \ aktivizēt.sikspārnis ja izmantojat komandu uzvedni, vai,
    >.\ my-env \ Scripts \ aktivizēt.ps1 ja izmantojat PowerShell.

Virtuālās vides izmantošana

Kad skripts būs veiksmīgi palaists, pamanīsit, ka uzvedne mainās uz kaut ko līdzīgu zemāk redzamajam, tagad jūs varat instalēt paketes, izmantojot pip:

(my-env) $ pip3 instalēšanas pieprasījumi
## Mēs varam uzskaitīt instalētās paketes, izmantojot komandu 'pip freeze'
(my-env) $ pip3 iesaldē
sertifikāts == 2018.10.15
chardet == 3.0.4
idna == 2.7
pkg-resources == 0.0.0
pieprasījumi == 2.20.1
urllib3 == 1.24.1

Kamēr virtuālā vide ir aktīva (kā norādīts uzvednē), visas paketes tiks saglabātas tikai virtuālās vides direktorijā (my-env) neatkarīgi no tā, kur atrodaties failu sistēmā.

Lai izkļūtu no virtuālās vides, uzvednē varat ierakstīt deaktivizēt, un jūs atkal izmantosiet visas sistēmas Python instalēšanu. Jūs varat pamanīt, ka tikko instalētās jaunās pakotnes netiks rādītas globālajā pip instalācijā.

Lai atbrīvotos no virtuālās vides, vienkārši izdzēsiet mapi my-env, kas tika izveidota pēc moduļa palaišanas. Jūs varat izveidot tik daudz no šīm vidēm, cik vēlaties.

Secinājums

Izmantojot venv moduli, virtuālās vides tagad ir pieejamas kā Python standarta funkcija, it īpaši, ja instalējat no Python.org. Iepriekš mums bija daudz trešo pušu realizāciju, ko sauc par virtualenv, pyenv utt.

Tas radīja arvien vairāk uzpūstas programmatūras, piemēram, Anaconda, kas ir īpaši populāra datu zinātnieku vidū. Ir labi, ja beidzot ir pieejams vienkāršots rīks Python pakotņu pārvaldīšanai, neinstalējot daudz citu nesaistītu nevēlamu saturu. Vairāk par venv varat lasīt šeit.

Kontrolējiet un pārvaldiet peles kustību starp vairākiem monitoriem sistēmā Windows 10
Dual Display Mouse Manager ļauj kontrolēt un konfigurēt peles kustību starp vairākiem monitoriem, palēninot tās kustību robežas tuvumā. Windows 10/8 ļ...
WinMouse ļauj jums pielāgot un uzlabot peles rādītāja kustību Windows datorā
Ja vēlaties uzlabot peles rādītāja noklusējuma funkcijas, izmantojiet bezmaksas programmatūru WinMouse. Tas pievieno vairāk funkciju, kas palīdzēs jum...
Peles kreisā klikšķa poga nedarbojas operētājsistēmā Windows 10
Ja ar klēpjdatoru vai galddatoru izmantojat īpašu peli, bet nedarbojas peles kreisās klikšķa poga kādu iemeslu dēļ operētājsistēmā Windows 10/8/7 šeit...