Nauč se Python > Kurzy > MI-PYT > Weboví klienti & CLI – Requests a Click > Vytvoření virtuáního prostředí

V tomto kurzu budeme používat virtuální prostředí. Jedná se o oddělené prostředí pro Python, kam se dají instalovat jednotlivé knihovny, které jsou potom aktivní jen uvnitř. Použití prostředí má dvě hlavní výhody:

Následují zrychlené instrukce; předpokládám, že Python (3.4 a vyšší) už máš nainstalovaný a že znáš základy práce s příkazovou řádkou

Podrobný postup instalace Pythonu a vytvoření prostředí je je popsán v příslušné lekci pro začátečníky. Modul venv je součást standardní knihovny.

Unix (Linux, macOS)

Zkontroluj, že máš modul ensurepip:

$ python3.6 -m ensurepip --version
pip 9.0.1 (nebo i jiná verze)

Jestli ne, postupuj podle lekce pro začátečníky – jsou tam podrobnější instrukce. Jinak použij:

$ mkdir project
$ cd project
$ python3.6 -m venv __venv__  # vytvoření virtualenvu -- použij Python dle systému
$ . __venv__/bin/activate  # aktivace
(__venv__)$ python -m pip install requests  # příkaz na instalaci balíčků puštěný ve virtualenvu
(__venv__)$ ...  # práce "uvnitř"
(__venv__)$ deactivate  # vypnutí virtualenvu

V tomto kurzu lze případně využít i Python 3.5. Pokud máš 3.4 nebo ještě nižší, doporučujeme aktualizovat.

Windows

> mkdir project
> cd project
> py -3 -m venv __venv__
> __venv__\Scripts\activate
(__venv__)> python -m pip install requests  # příkaz na instalaci balíčků puštěný ve virtualenvu
(__venv__)> ...  # práce "uvnitř"
(__venv__)> deactivate  # vypnutí virtualenvu

Poznámky

Příkaz __venv__/bin/activate budeš muset zadat vždy než začneš na projektu pracovat.

Ono __venv__ je jen jméno adresáře. Můžeš si ho pojmenovat jak chceš; dokonce nemusí být v rámci adresáře s projektem. Někteří lidé mají všechny virtuální prostředí na jednom místě; dokonce existuje nástroj virtualenvwrapper na správu takového řešení. Autoři tohoto textu však doporučují __venv__ v adresáři s projektem.

Příkaz python -m pip install nainstaluje danou knihovnu – může to být i jiná než requests jako výše.