Začínáme s virtuálními prostředími v Pythonu

V tomto článku se dozvíte, jak začít s virtuálními prostředími v Pythonu v operačních systémech Windows i Linux.

Když začnete pracovat na více projektech v místním vývojovém prostředí, často narazíte na problémy se závislostmi. Vytváření virtuálních prostředí pro každý z vašich projektů vám může pomoci lépe spravovat závislosti a požadavky projektu.

Abychom využili výhody virtuálních prostředí v Pythonu, naučme se vytvářet a aktivovat virtuální prostředí. 👩🏽‍💻

Co jsou virtuální prostředí?

Virtuální prostředí jsou izolovaná a nezávislá prostředí, která obsahují kód a závislosti projektu.

Proč byste ale měli používat virtuální prostředí?

Virtuální prostředí vám umožňují instalovat a používat různé verze stejných knihoven pro různé projekty. Použití virtuálních prostředí také zajišťuje, že nedojde k žádným změnám, když dva nebo více projektů používá různé verze. Pojďme tomu porozumět podrobněji.

Instalace balíčků v Pythonu

Standardní knihovna Pythonu se dodává s několika užitečnými moduly pro testování jednotek, interakci s operačním systémem, práci s daty a časy a další.

Při práci na projektech Pythonu však často budete muset nainstalovat další balíčky – vyvinuté komunitou Pythonu. To platí zejména pro aplikace, jako je web scraping pro sběr dat, strojové učení a webové aplikace.

K instalaci a správě těchto balíčků můžete použít conda nebo pip.

Každý projekt vyžaduje specifickou sadu balíčků, které musíte nainstalovat. Když však nainstalujete všechny balíčky ve vašem vývojovém prostředí na místní počítač, všechny projekty sdílejí globálně nainstalované balíčky.

Proč je to tedy problém?

Ve svém vývojovém prostředí můžete mít N balíčků. Projekt, na kterém aktuálně pracujete, však může vyžadovat pouze 3 z nich. Když všechny vaše projekty sdílejí společné instalace, je velmi obtížné určit, který z projektů vyžadoval který z nainstalovaných balíčků – závislosti spojené s každým projektem.

  Jak provést resetování Harmony Hub

Tento přístup má další omezení. Předpokládejme, že máte v knihovně projektů projekt Django 2.2. Rozhodnete se začít pracovat na projektu, který používá Django 4. Nainstalujete tedy nejnovější verzi Django ve stejném vývojovém prostředí.

Co se stane se stávající instalací?

Je odstraněn a nahrazen verzí Django, kterou jste nainstalovali. U novějších stabilních verzí mohly být některé funkce zastaralé. A vaše dřívější projekty Django nemusí fungovat podle očekávání.

Shrneme-li naši dosavadní diskusi: správa závislostí se stává obtížnou, když jsou všechny balíčky nainstalovány ve společném prostředí, protože projekty vyžadují ke spuštění vlastní sadu knihoven.

Jak fungují virtuální prostředí

Doposud jsme viděli problémy spojené s instalací balíčků v globálním vývojovém prostředí (systémové instalace). To nás motivuje pochopit, jak virtuální prostředí řeší toto omezení.

Když vytvoříte a aktivujete virtuální prostředí pro své projekty Python, můžete nainstalovat pouze ty balíčky, které jsou vyžadovány pro aktuální projekt.

Když se vrátíme k příkladu projektů Django, s virtuálními prostředími můžete spustit projekty Django 2.2 i Django 4 – bez jakéhokoli konfliktu. Je to proto, že instalace Django již nejsou instalacemi pro celý systém, ale jsou omezeny na virtuální prostředí příslušných projektů.

V podstatě: virtuální prostředí jsou izolovaná prostředí, která obsahují jak kód, tak závislosti pro projekt.

Výhody virtuálních prostředí

Nyní, když jste se naučili, jak virtuální prostředí fungují v Pythonu, pojďme si vyjmenovat výhody jejich používání:

  • Virtuální prostředí poskytují izolované vývojové prostředí pro jednotlivé projekty, které nám umožňuje instalovat pouze balíčky potřebné pro konkrétní projekt.
  • Protože virtuální prostředí projektů jsou jak nezávislá, tak izolovaná, různé projekty mohou používat různé verze stejné knihovny – v závislosti na požadavcích. S virtuálními prostředími se nemusíte starat o systémová oprávnění k instalaci knihoven a nastavení vývojového prostředí.
  • Jakmile nainstalujete balíčky do virtuálního prostředí, můžete zachytit závislosti projektu v souboru requirements.txt. To umožňuje ostatním vývojářům replikovat vývoj a prostředí projektu a instalovat požadované balíčky pomocí jediného příkazu.

Zatím jste se dozvěděli, jak virtuální prostředí fungují a jaké jsou výhody jejich používání. Pojďme prozkoumat některé oblíbené nástroje, které můžete použít k vytváření a správě virtuálních prostředí v Pythonu.

#1. Virtualenv

Virtualenv je jedním z široce používaných nástrojů pro vytváření a správu virtuálních prostředí pro projekty Pythonu. Podmnožina funkcí virtualenv je k dispozici v balíčku venv. Nicméně balíček virtualenv je rychlejší a rozšiřitelný ve srovnání s venv.

  Můžete získat Warzone Aimbot na Xbox One?

#2. Pipenv

S pipnev máte jak funkce virtuálního prostředí virtualenv, tak možnosti správy balíků pip. Používá řídí pipfiles ke správě projektových závislostí uvnitř virtuálního prostředí pomocí.

Pipenv si můžete vyzkoušet přímo z prohlížeče na tomto hřišti Pipenv.

#3. Conda

Pokud pro vývoj používáte distribuci Anaconda Pythonu, můžete conda použít pro správu balíčků a pro vytváření virtuálních prostředí.

Chcete-li se dozvědět více, podívejte se na tuto komplexní příručku o správě prostředí pomocí conda.

#4. Poezie

Poetry je nástroj pro správu balíčků, který vám umožňuje spravovat závislosti napříč všemi projekty Pythonu. Chcete-li začít používat Poetry, musíte mít nainstalovaný Python 3.7 nebo novější.

#5. Venv

Jak již bylo zmíněno, venv nabízí podmnožinu funkcí virtualenv, ale má tu výhodu, že je zabudována do standardní knihovny Pythonu, počínaje Pythonem 3.3.

Je snadno dostupný s instalací Pythonu – a nevyžaduje instalaci externích balíčků. V tomto tutoriálu jej použijeme k vytváření virtuálních prostředí a práci s nimi. ✅

Jak vytvořit virtuální prostředí Python v Ubuntu

💬 Abyste mohli pokračovat se zbytkem tohoto tutoriálu, musíte mít místní instalaci Pythonu 3. Ujistěte se, že používáte Python 3.5 nebo novější verzi.

Tato část popisuje kroky k vytvoření a aktivaci virtuálních prostředí v počítači Ubuntu Linux. Stejné kroky lze použít i v jiných distribucích Linuxu.

Pro snadnější správu si vytvořte adresář projektu a do něj cd; V tomto adresáři vytvoříme venv.

$ mkdir my_project
$ cd my_project

Obecná syntaxe pro vytvoření virtuálního prostředí pro váš projekt Python je python3 -m venv . Po spuštění tohoto příkazu se v aktuálním pracovním adresáři vytvoří virtuální prostředí s názvem my_env:

$ python3 -m venv my_env

Jak aktivovat a instalovat balíčky ve virtuálním prostředí

Po vytvoření virtuálního prostředí jej můžete aktivovat a nainstalovat do něj požadované balíčky. Pro aktivaci virtuálního prostředí můžete spustit následující příkaz:

$ source my_env/bin/activate

Jakmile aktivujete virtuální prostředí, můžete spustit příkaz pip list a získat seznam nainstalovaných balíčků:

$ pip list

Dosud jsme nenainstalovali žádný balíček, takže byste měli být schopni vidět setuptools a pip – nainstalované ve výchozím nastavení – v každém z vytvořených virtuálních prostředí.

  Jak spustit Chrome v režimu inkognito pomocí zástupce na ploše

Instalace pip do virtuálního prostředí vám umožňuje instalovat balíčky potřebné pro konkrétní projekt; proto máte pro každý projekt nezávislé vývojové prostředí.

Nyní, když jste aktivovali virtuální prostředí, můžete do něj nainstalovat balíčky specifické pro projekt pomocí pip. Jako příklad si nainstalujme požadavky Pythonu, jeden z nejstahovanějších balíčků Pythonu, který poskytuje několik užitečných funkcí pro odesílání požadavků HTTP pro práci s webovými rozhraními API.

$ pip install requests

Když nainstalujete knihovnu požadavků, uvidíte, že se knihovna požadavků nainstaluje spolu se všemi balíčky, které vyžaduje.

$ pip list

Můžete použít příkaz pip freeze a přesměrovat výstup do souboru requirements.txt, jak je znázorněno:

$ pip freeze > requirements.txt

Pokud prozkoumáte obsah aktuálního adresáře projektu, uvidíte, že byl vytvořen soubor requirements.txt.

$ ls
# my_env requirements.txt

Po práci na projektu můžete virtuální prostředí deaktivovat spuštěním následujícího příkazu:

$ deactivate

Jak vytvořit virtuální prostředí Python ve Windows

Obecně je pro vývoj preferováno prostředí Linux. Pokud používáte počítač se systémem Windows, můžete zvážit použití podsystému Windows pro Linux (WSL) k nastavení terminálového prostředí Ubuntu pro místní vývoj.

Pokud jste na počítači se systémem Windows, můžete použít prostředí Windows PowerShell nebo příkazový řádek a vytvořit virtuální prostředí pomocí následujícího příkazu:

> python -m venv <path-to-venv>

Jak aktivovat virtuální prostředí

Aktivace virtuálních prostředí na počítači se systémem Windows se liší v závislosti na tom, zda pracujete na příkazovém řádku nebo v prostředí Windows PowerShell.

Pokud jste na příkazovém řádku, spusťte následující příkaz a aktivujte virtuální prostředí:

> <path-to-venv>Scriptsactivate.bat

Alternativně, pokud používáte Windows PowerShell, spuštění tohoto příkazu aktivuje virtuální prostředí:

> <path-to-venv>ScriptsActivate.ps1

Všechny potřebné balíčky můžete nainstalovat do virtuálního prostředí.

Chcete-li deaktivovat virtuální prostředí, můžete spustit příkaz deactivate – na příkazovém řádku i v prostředí Windows PowerShell.

Závěr

V tomto článku jsme diskutovali o omezeních celosystémových instalací a o tom, jak znesnadňují správu závislostí napříč projekty Pythonu. Virtuální prostředí v Pythonu poskytují způsob, jak lépe spravovat závislosti a zároveň poskytují izolované vývojové prostředí pro jednotlivé projekty.

Mezi široce používanými nástroji pro vytváření a správu virtuálních prostředí v Pythonu jste se naučili používat venv – který je zabudován do standardní knihovny Pythonu k vytváření a aktivaci virtuálních prostředí.

Uvnitř vyhrazeného virtuálního prostředí projektu lze nainstalovat verze knihoven specifických pro projekt. Tyto požadavky mohou být poté zachyceny v souboru requirements.txt, který umožňuje ostatním vývojářům snadno replikovat prostředí projektu.

Když začnete svůj další projekt Python, nezapomeňte použít virtuální prostředí pro lepší správu závislostí. Veselé kódování!🎉