Jak vyřešit konflikty verzí pythonu a balíčků pro různé python projekty? Musím vše nastavovat a dělat přes příkazový řádek a cítit se jako pravý geek, nebo si lze zjednodušit život?
V příspěvku tvorby obchodní strategie pomocí zipline, jsem používal knihovnu Zipline
, která vyžadovala pro svůj běh knihovnu Pandas
ve verzi 0.18.1, kterou jsem měl ale už nainstalovanou v novější verzi 0.20.3. Tyhle dvě verze pak kolidovali při psaní kódu v Jupyter notebooku
, když jsem chtěl knihovnu Pandas importovat do jiného projektu.
Je virtuální prostředí, díky kterému můžu mít více instalací pythonu na svém počítači. V každé této instalaci můžu mít jakékoli balíčky a moduly nezávisle na ostatních.
Existuje hodně nástrojů pro práci s virtuál environments, např. Virtualenv. Platforma Anaconda pythonu
má dokonce svoji vlastní implementaci virtual environments.
Všechny tyto nástroje se ovládají pomocí příkazové řádky. Měl jsem ale problém vytvořené environmenty nějak jednoduše propojit s Jupyter notebookem. Nakonec jsem našel rozšíření pro Jupyter, které se o tohle postará samo. Jde o rozšíření nb_conda, které vytvoří po spuštění jupyter notebook
záložku Conda
pro správu virtuálních prostředí. Instaluje se jednoduše pomocí příkazu:
conda install nb_conda
Následně po spuštění Jupyter notebooku příkazem jupyter notebook
, se otevře prostředí Jupyteru a jako volba bude nová záložka Conda, kde můžu spravovat různá environments:
Image1
Zde si po vytvoření můžu zvolit, které balíčky chci nainstalovat:
Image2
nebo lze instalovat klasicky přes příkazovou řádku, jen musím nejprve aktivovat virtuální prostředí:
activate zipline_env
a pak klasicky přes pip můžu nainstalovat potřebné balíčky:
pip install zipline
Image3
Nakonec v Jupyter notebooku zvolím požadovaný Kernel a kód se automaticky bude spouštět v daném virtuálním prostředí.
Python virtual environment je skvělý nástroj pro udržování potřebných verzí knihoven a následnou interpretaci (spouštění) programů v tomhle prostředí. Rozšíření nb_conda
umožňuje graficky spravovat prostředí a nastavovat toto prostředí pro jednotlivé notebooky. Ještě musím zmínit, že nb_conda
pracuje s virtuálním prostředím platformy Anaconda python.
Pomocí python virtual environment jsem vyřešil problém, kdy po instalaci balíčku zipline
, mně kolidovali verze balíčku pandas
v jiných programech.