Programování

Jak spravovat projekty Pythonu pomocí Pipenv

Ekosystém balíčků Pythonu vám umožní jednoduše využít práci milionů dalších vývojářů pip install příkaz. Virtuální prostředí Pythonu vám umožňují navzájem izolovat projekty a jejich balíčky.

Samostatné žonglování s prostředími a balíčky však může být nepraktické. Dvojnásobně, pokud mají vaše projekty specifické požadavky na balíček a chcete se místo údržby soustředit na vývoj. Potřebujeme způsob společné správy prostředí a balíčků.

Pipenv zavádí správu virtuálních prostředí Pythonu a balíčků Pythonu do jediného nástroje. Pipenv zajišťuje, že každý projekt používá správnou verzi každého balíčku, který potřebuje, a že každý z těchto balíčků má také správné závislosti.

Pipenv dále generuje seznam závislostí vašeho projektu, které s ním mohou cestovat, což ostatním uživatelům nebo vývojářům umožňuje nastavit stejný projekt stejným způsobem. Ostatní uživatelé si také budou muset nainstalovat Pipenv, aby správně nastavili projekt spravovaný pomocí Pipenv, ale naštěstí je instalace a používání Pipenv hračkou.

Jak funguje Pipenv

Když obvykle vytvoříte projekt Pythonu a použijete pro jeho balíčky virtuální prostředí, máte za úkol vytvořit si virtuální prostředí sami (pomocí příkazupy -m venv), instalace závislostí do něj a ruční sledování závislostí.

Pipenv poskytuje způsob, jak to všechno udělat poloautomaticky. Virtuální prostředí pro váš projekt je vytvořeno a spravováno za vás, když instalujete balíčky prostřednictvím rozhraní příkazového řádku Pipenv. Závislosti jsou sledovány a uzamčeny a můžete samostatně spravovat závislosti na vývoji a běhu. Můžete také migrovat ze stávající staré školy requirements.txt soubory, takže nemusíte svůj projekt roztrhat a začít od nuly, abyste mohli Pipenv dobře používat.

Všimněte si, že na rozdíl od jiných nástrojů pro správu projektů v Pythonu (například Poetry), Pipenv nespravuje „lešení“ vašeho projektu. To znamená, že Pipenv nevytváří vnitřní strukturu adresáře projektu pomocí falešných testů, stubů dokumentace atd., Ale zaměřuje se hlavně na správu balíků a prostředí. Díky tomu je Pipenv dobrou volbou, pokud chcete, aby se nástroj soustředil pouze na virtuální prostředí a balíčky, a ne na řešení typu vše v jednom.

Začněte s Pipenv

Pipenv se instaluje stejným způsobem jako většina jiných balíčků Pythonu: pip install --user pipenv. The --uživatel Tato možnost se doporučuje, aby se zabránilo konfliktu Pipenv s jinými celosystémovými balíčky. Měli byste také přidat cestu k binárnímu adresáři uživatele do systémové cesty, aby byly příkazy Pipenv směrovány na správné místo.

Pokud plánujete, aby byl Pipenv konzistentní součástí vašeho pracovního postupu, je také dobré udržovat základní instalaci Pythonu co nejmenší. Tato rada platí pro většinu instalací v Pythonu, které využívají virtuální prostředí.

Nastavit nový projekt s Pipenv

Chcete-li zahájit zcela nový projekt s Pipenv, stačí vytvořit adresář a naplnit jej soubory, které pro projekt normálně vytvoříte. Pokud máte tendenci lešení projektu za pochodu, můžete začít s prázdným adresářem.

Instalace balíčků pro projekt se u Pipenv výrazně neliší od Pip; ve skutečnosti je syntaxe téměř stejná. Otevřete konzolu v adresáři projektu a zadejte instalace pipenv nainstalovat balíček pro projekt. Chcete-li určit, že balíček je pro rozvoj, použijte -d vlajka. Můžeš použít pip syntaxe k označení konkrétní verze balíčku (např. černá == 13,0b1).

Když nainstalujete balíček pomocí Pipenv, stanou se dvě věci. Nejprve Pipenv zkontroluje, zda již bylo pro tento adresář projektu vytvořeno virtuální prostředí. Pokud ano, Pipenv nainstaluje balíček do stávajícího virtuálního prostředí. Pokud ne, Pipenv vytvoří virtuální prostředí, které používá stejnou edici Pythonu, která se používá ke spuštění Pipenv. Všimněte si, že virtuální prostředí je ne vytvořeno v samotném adresáři projektu; je vytvořen v adresáři spravovaném Pipenv ve vašem uživatelském profilu.

Za druhé, Pipenv nainstaluje požadované balíčky do virtuálního prostředí. Když je instalace hotová, Pipenv ohlásí vše, co udělala, včetně cesty k virtuálnímu prostředí, pokud ji muselo vytvořit.

Obecně nepotřebujete znát cestu k virtuálnímu prostředí, které Pipenv vytváří. Chcete-li aktivovat prostředí, přejděte do adresáře projektu a použijtepipenv shell zahájit novou relaci prostředí nebo použítpipenv běh přímo spustit příkaz. Například použijtepipenv spustit mypy spustit verzi nástroje příkazového řádku mypy (za předpokladu mypy nástroj byl nainstalován ve virtuálním prostředí), nebo pipenv spustit python -m spustit modul Pythonu dostupný ve virtuálním prostředí.

Pipenv a lockfiles

Po nainstalování balíčků pomocí Pipenv nahlédněte do adresáře a uvidíte dva soubory, Pipfile a Pipfile.lock. Oba jsou automaticky generovány Pipenv, a neměly by být upravovány přímo, protože popisují stav balíčků v projektu.

Pipfile je jednodušší ze dvou. Uvádí pouze seznam balíků potřebných pro projekt, odkud jsou nainstalovány (výchozí je PyPI) a která verze Pythonu je potřebná ke spuštění všeho. Pipfile.lock je složitější. Uvádí každý balíček spolu s podrobnostmi o verzi a hash SHA-256 generovanými z balíčku. Hodnoty hash se používají k zajištění shody nainstalovaných balíků přesně tak co je uvedeno - nejen číslo verze, ale také získaný obsah.

Když pracujete na projektu, který pro správu balíků používá Pipenv, budete chtít přidat Pipfile a Pipfile.lock soubory do úložiště správy verzí projektu. Jakékoli změny provedené v balíčcích pro váš projekt zase tyto soubory změní, takže tyto změny by měly být sledovány a verzovány.

Použijte projekt Pipenv

Pokud si stáhnete zdrojové úložiště pro projekt, který pro správu balíků používá Pipenv, vše, co musíte udělat, je rozbalit obsah úložiště do adresáře a spustit instalace pipenv (nejsou potřeba žádné názvy balíků). Pipenv bude číst Pipfile a Pipfile.lock soubory pro projekt, vytvořte virtuální prostředí a podle potřeby nainstalujte všechny závislosti.

Nakonec, pokud chcete použít Pipenv ke správě projektu, který aktuálně používá a requirements.txt soubor, přejděte do adresáře projektu a spusťte jej instalace pipenv. Pipenv detekujerequirements.txt (nebo můžete použít -r a přejděte na něj) a migrujte všechny požadavky do a Pipfile.

$config[zx-auto] not found$config[zx-overlay] not found