Vyhledávání na webu

Pyenv – Nainstalujte více verzí Pythonu pro konkrétní projekt


Správa více verzí Pythonu v systému Linux není snadný úkol, zejména pro začátečníky. Někdy se to ještě zhorší, když chcete vyvíjet a provozovat více projektů s různými verzemi Pythonu na stejném serveru. To by však nemělo platit, pokud používáte pyenv.

Přečtěte si také: Jak nainstalovat nejnovější verzi Pythonu 3.6 v Linuxu

Co je Pyenv?

Pyenv je jednoduchý, výkonný a multiplatformní nástroj pro správu více verzí Pythonu na systémech Linux, které se používají pro.

  • Přepínání globální verze Pythonu na základě jednotlivých uživatelů.
  • nastavení místní verze Pythonu na základě projektu.
  • Správa virtuálních prostředí vytvořených anaconda nebo virtualenv.
  • Přepsání verze Pythonu proměnnou prostředí.
  • Vyhledávání příkazů z více verzí Pythonu a dalších.

Jak pyenv funguje?

Ke spouštění všech aplikací se obvykle používá jediná výchozí verze Pythonu, pokud výslovně neurčíte verzi, kterou chcete v aplikaci používat. Ale pyenv implementuje jednoduchý koncept použití shims (odlehčené spustitelné soubory) k předání vašeho příkazu správné verzi Pythonu, kterou chcete použít, když máte nainstalovaných více verzí.

Tyto shims jsou vloženy pomocí pyenv do adresářů před vaší PATH. Když tedy spustíte příkaz Pythonu, je zachycen příslušným shim a předán pyenv, který pak stanoví verzi Pythonu, která byla specifikována vaší aplikací, a předá vaše příkazy spolu s oprávněnou instalací Pythonu. Toto je přehled toho, jak pyenv funguje.

V tomto článku si ukážeme, jak nainstalovat nejnovější verzi pyenv v Linuxu. Předvedeme také první tři výše uvedené případy použití.

Jak nainstalovat Pyenv v Linuxu

1. Nejprve nainstalujte všechny potřebné balíčky pro instalaci různých verzí Pythonu ze zdrojů pomocí následujícího příkazu ve vaší příslušné distribuci Linuxu.

------------ On Debian/Ubuntu/Linux Mint ------------ 
sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

------------ On CentOS/RHEL ------------
yum -y install epel-release
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

------------ On Fedora 22+ ------------
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2. Dále stáhněte nejnovější zdrojový strom pyenv z jeho úložiště Github a nainstalujte jej do cesty $HOME/.pyenv pomocí následujícího příkazu.

git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3. Nyní musíte nastavit proměnnou prostředí PYENV_ROOT tak, aby ukazovala na cestu, kam jste nainstalovali pyenv, a exportovat ji. Poté přidejte $PYENV_ROOT/bin do své PATH a spouštějte nástroj příkazového řádku pyenv jako všechny ostatní systémové příkazy.

Musíte také povolit shims a také automatické dokončování přidáním pyenv init do vašeho shellu. Všechny tyto věci proveďte ve svém spouštěcím souboru bash $HOME/.bashrc, jak je znázorněno.

vim $HOME/.bashrc 

Zkopírujte a vložte následující řádky na konec tohoto souboru.

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

4. Jakmile provedete výše uvedené změny, můžete buď zdrojový soubor $HOME/.bashrc, nebo restartovat shell podle obrázku.

source $HOME/.bashrc
OR
exec "$SHELL"

Jak nainstalovat více verzí Pythonu v Linuxu

5. V tuto chvíli byste měli být připraveni začít používat pyenv. Před instalací jakékoli verze Pythonu můžete pomocí tohoto příkazu zobrazit všechny dostupné verze.


pyenv install -l

6. Nyní můžete nainstalovat více verzí Pythonu například pomocí pyenv.

pyenv install 3.6.4
pyenv install 3.6.5

7. Chcete-li zobrazit seznam všech verzí Pythonu dostupných pro pyenv, spusťte následující příkaz. Zobrazí se pouze verze nainstalované prostřednictvím samotného pyenv.

pyenv versions

8. Globální verzi Pythonu můžete zkontrolovat pomocí následujícího příkazu. V tuto chvíli by výchozí verze měla být verze nastavená systémem, nikoli pyenv.

pyenv global

Globální verzi pythonu můžete nastavit pomocí příkazu pyenv.

pyenv global 3.6.5
pyenv global

9. Nyní můžete nastavit místní verzi Pythonu na základě jednotlivých projektů, například pokud máte projekt umístěný v $HOME/python_projects/test, můžete nastavit jeho verzi Pythonu pomocí následujícího příkazu.

cd python_projects/test
pyenv local 3.6.5
pyenv version		#view local python version for a specific project 
OR
pyenv versions

10. Pyenv spravuje virtuální prostředí pomocí pluginu pyenv-virtualenv, který automatizuje správu prostředí virtualenvs a conda pro Python na Linuxu a dalších systémech podobných UNIXu.

Můžete začít instalací tohoto pluginu pomocí následujících příkazů.

git clone https://github.com/yyuu/pyenv-virtualenv.git   $HOME/.pyenv/plugins/pyenv-virtualenv
source $HOME/.bashrc

11. Nyní vytvoříme testovací virtuální prostředí s názvem venv_project1 v rámci projektu s názvem project1 následovně.

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. Když nyní vypíšete všechny verze Pythonu, měla by být uvedena také vaše virtuální prostředí a jejich místní verze Pythonu, jak je znázorněno na snímku obrazovky.

pyenv versions

13. Chcete-li aktivovat virtualenv, například venv_project1, zadejte následující příkaz.

pyenv activate venv_project1

Poznámka: Při prvním použití nejnovější verze pyenv-virtualenv pluginu se vám může zobrazit níže uvedená zpráva.

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

Přidejte řádek export PYENV_VIRTUALENV_DISABLE_PROMPT=1 do svého souboru $HOME/.bashrc, kam jste přidali další konfigurace pyenv, a vytvořte zdrojový soubor pro simulaci chování je zdůrazněno.

14. Chcete-li deaktivovat aktivovaný virtualenv, spusťte tento příkaz.

pyenv deactivate

Pro více informací můžete vypsat všechny příkazy pyenv pomocí následujícího příkazu.

pyenv commands

Další informace najdete v pyenv úložišti Github: https://github.com/pyenv/pyenv

Přečtěte si také: Jak nainstalovat více verzí PHP pro více webových stránek

Použití pyenv je opravdu tak jednoduché. V této příručce jsme ukázali, jak jej nainstalovat, a také jsme ukázali některé z jeho případů použití pro správu více verzí pythonu v systému Linux. Pomocí formuláře pro zpětnou vazbu níže můžete položit jakékoli dotazy nebo sdílet své názory na tento nástroj.