Piton

Virtuális környezetek a Python 3-ban

Virtuális környezetek a Python 3-ban
Mint a legtöbb ember, én is utálom a felesleges csomagok telepítését a munkaállomásra. Miután végzett velük, soha nem elég eltávolítani őket. A csomagok tonnányi mappát és fájlt hagynak maguk után. Sok más (homályos) csomagot igényelnek, amelyek szintén a dolgok nyomán maradnak hátra. Lassan, de biztosan ezek a dolgok felhalmozódnak a munkaállomáson, és bár nem biztos, hogy feltöltik a lemezterület jelentős részét, más problémákat okozhatnak.

Régebbi függőségek

A régebbi csomagok elidőzhetnek, és a Python-kód boldogan fogja használni őket. Ez nem jelent problémát, ha a Python-szkriptjeit helyben kell futtatni, és nem ipari célokra. Az adatkutatók, a hallgatók, sőt a mindennapi feladataikat automatizáló rendszeres emberek is sok probléma nélkül használhatják a régebbi csomagokat.

A probléma akkor kezdődik, amikor elküldi a kódot a gyártásba. Amikor ezt megteszi, akkor valószínűleg csak a fő szkriptet küldi el, és nem az összes csomagfüggőséget. Például, ha írt egy mikroszolgáltatást, amelyet AWS Lambda funkcióként szállít, akkor az első néhány sor a következőképpen importálja a kérelem modult:

import kérelem

Az AWS lambda által küldött kérési csomag eltér a régitől, és ennek következtében a program összeomolhat.

Konfliktusok

Konfliktusok is képbe kerülhetnek, amikor a különböző projektek ugyanazon csomag különböző verzióit használják. Lehet, hogy néhány régebbi projektednek szüksége van a régebbi pip csomagokra. De szükség lehet újabb projektekre más projektekhez. Fut a pip install -U frissíti a csomagot az operációs rendszeren, ami problémákat okoz, amikor visszatér a régebbi projektek karbantartásához.

Python virtuális környezetek

Ha a Python bármelyik verzióját 3 felett használja.Az 5. ábra szerint a venv nevű beépített modult létrehozhatja úgynevezett Python virtuális környezeteknek. Ez a modul egy elszigetelt mappát vagy könyvtárat hoz létre, ahol az összes pip csomag és más függőség élhet. A mappa tartalmaz egy 'activ' szkriptet is. Amikor egy adott virtuális környezetet akar használni, egyszerűen futtassa ezt a szkriptet, amely után csak a mappában található csomagok érhetők el. Ha a pip install programot futtatja, akkor a csomagok ebbe a mappába kerülnek, és sehol máshol. Miután befejezte a környezet használatát, egyszerűen „deaktiválhatja” azt, és akkor csak a globális pip csomagok lesznek elérhetők.

Ha Ubuntu 18-at használ.04 és újabb verziók esetén a pip csomagkezelőt sem kell telepítenie az egész rendszerre. A Pip csak akkor létezhet a virtuális környezetben, ha ezt jobban szereti.

A venv telepítése és virtuális környezetek létrehozása

Ubuntu 18.A 04 LTS Python 3-mal kerül ki a dobozból.6.x, de a Python venv modul nincs telepítve, a pip sem. Telepítsük csak a venv-t.

$ apt install python3-venv

Ezután megyünk ahhoz a könyvtárhoz, amelyen belül létre szeretné hozni a Virtuális Környezet könyvtárat. Számomra ez a ~ / project1

$ cd ~ / project1

Hozza létre a venv-t a következő paranccsal, vegye észre, hogy a my-env csak a környezet neve, bárhonnan megnevezheti:

$ python3 -m venv my-env

Megjegyzés: Egyes Python3 telepítések, például a Windows rendszeren elérhetőek, a Python tolmácsot csak a python és nem a python3 használatával hívja meg, de ez rendszerről rendszerre változik. A következetesség kedvéért csak python3-at fogok használni.

Miután a parancs végrehajtása befejeződött, észrevesz egy új mappát ~ / project1 / my-evn. A my-env virtuális környezet aktiválásához:

  1. Fuss,
    $ source ~ / project1 / my-env / bin / activ ha Bash-t használ.
    Vannak alternatív parancsfájlok, amelyeket aktiválásnak hívnak.hal és aktiválja.csh azoknak az embereknek, akik halat, illetve csh kagylót használnak.
  2. Windows rendszeren a parancsfájl a következő futtatással hívható meg:
    >.\ my-env \ Scripts \ activ.denevér ha parancssort használ, vagy,
    >.\ my-env \ Scripts \ activ.ps1 ha PowerShell-t használ.

Virtuális környezetek használata

Miután sikeresen futtatta a szkriptet, észreveszi, hogy a prompt megváltozik valamire, mint az alább látható, mostantól telepítheti a csomagokat a pip használatával:

(my-env) $ pip3 telepítési kérelmek
## A 'pip freeze' paranccsal felsorolhatjuk a telepített csomagokat
(my-env) $ pip3 befagy
igazolás == 2018.10.15
chardet == 3.0.4
idna == 2.7
pkg-resources == 0.0.0
kérések == 2.20.1
urllib3 == 1.24.1

Amíg a virtuális környezet aktív (amint azt a felszólítás jelzi), az összes csomag csak a virtuális környezet könyvtárába (my-env) kerül mentésre, függetlenül attól, hogy hol tartózkodik a fájlrendszerben.

A virtuális környezetből való kilépéshez írja be a deactivate parancsot a parancssorba, és visszatér a Python rendszerszintű telepítéséhez. Észreveheti, hogy az imént telepített új csomagok nem jelennek meg a globális pip telepítésben.

A virtuális környezet megszabadításához egyszerűen törölje a my-env mappát, amely a modul futtatása után jött létre. Ezekből a környezetekből annyit hozhat létre, amennyit csak akar.

Következtetés

A venv modullal a virtuális környezetek már elérhetők a Python standard szolgáltatásaként, különösen, ha Pythonról telepít.org. Korábban sok harmadik fél által megvalósított implementációnk volt virtuális, pyenv stb.

Ez egyre több olyan duzzadt szoftvert eredményezett, mint az Anaconda, amely különösen népszerű az adatkutatók körében. Jó, ha végre van egy leegyszerűsítő eszközünk a Python csomagok kezelésére anélkül, hogy sok más, nem kapcsolódó szemetet kellene telepítenünk. A venv-ről itt olvashat bővebben.

A kurzor véletlenszerűen ugrik vagy mozog, miközben gépel a Windows 10-ben
Ha úgy találja, hogy az egér kurzor önállóan, automatikusan, véletlenszerűen ugrik vagy mozog, miközben gépel Windows laptopba vagy számítógépbe, akko...
Az egér és az érintőpadok görgetési irányának megfordítása a Windows 10 rendszerben
Egér és Érintőpads nemcsak a számítást könnyűvé, de hatékonyabbá és kevésbé időigényessé is teszi. Nem tudunk elképzelni egy életet ezek nélkül az esz...
Az egérmutató és a kurzor méretének, színének és sémájának módosítása a Windows 10 rendszeren
Az egérmutató és a kurzor a Windows 10 operációs rendszerben nagyon fontos szempont. Ez elmondható más operációs rendszerekről is, tehát valójában eze...