Wyszukiwanie w witrynie

Pyenv — zainstaluj wiele wersji Pythona dla konkretnego projektu


Zarządzanie wieloma wersjami Pythona w systemie Linux nie jest łatwym zadaniem, zwłaszcza dla początkujących. Czasami sytuacja staje się jeszcze gorsza, gdy chcesz opracowywać i uruchamiać wiele projektów z różnymi wersjami Pythona na tym samym serwerze. Nie powinno to jednak mieć miejsca, jeśli używasz pyenv.

Przeczytaj także: Jak zainstalować najnowszą wersję Pythona 3.6 w systemie Linux

Co to jest Pyenv?

Pyenv to proste, wydajne i wieloplatformowe narzędzie do zarządzania wieloma wersjami Pythona w systemach Linux.

  • Przełączanie globalnej wersji Pythona dla poszczególnych użytkowników.
  • ustawianie lokalnej wersji Pythona dla każdego projektu.
  • Zarządzanie środowiskami wirtualnymi stworzonymi przez anacondę lub virtualenv.
  • Zastępowanie wersji Pythona zmienną środowiskową.
  • Wyszukiwanie poleceń z wielu wersji Pythona i nie tylko.

Jak działa pyenv?

Zwykle do uruchamiania wszystkich aplikacji używana jest jedna domyślna wersja Pythona, chyba że wyraźnie określisz wersję, której chcesz używać w aplikacji. Jednak pyenv implementuje prostą koncepcję używania podkładek (lekkich plików wykonywalnych) do przekazywania poleceń do właściwej wersji Pythona, której chcesz używać, jeśli masz zainstalowanych wiele wersji.

Te podkładki są wstawiane przez pyenv do katalogów przed Twoją PATH. Zatem kiedy uruchamiasz polecenie Pythona, jest ono przechwytywane przez odpowiednią podkładkę i przekazywane do pyenv, który następnie ustala wersję Pythona określoną przez Twoją aplikację i przekazuje swoje polecenia wraz z właściwą instalacją Pythona. Oto przegląd działania pyenv.

W tym artykule pokażemy, jak zainstalować najnowszą wersję pyenv w systemie Linux. Zademonstrujemy również pierwsze trzy przypadki zastosowań wymienione powyżej.

Jak zainstalować Pyenv w systemie Linux

1. Najpierw zainstaluj wszystkie pakiety wymagane do zainstalowania różnych wersji Pythona ze źródeł, używając następującego polecenia w odpowiedniej dystrybucji Linuksa.

------------ 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. Następnie pobierz najnowsze drzewo źródłowe pyenv z repozytorium Github i zainstaluj je w ścieżce $HOME/.pyenv za pomocą następującego polecenia.

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

3. Teraz musisz ustawić zmienną środowiskową PYENV_ROOT tak, aby wskazywała ścieżkę, w której zainstalowałeś pyenv i wyeksportować ją. Następnie dodaj $PYENV_ROOT/bin do swojej PATH, aby uruchomić narzędzie wiersza poleceń pyenv, tak jak inne polecenia systemowe.

Musisz także włączyć podkładki oraz autouzupełnianie, dodając pyenv init do swojej powłoki. Wykonaj wszystkie te czynności w pliku startowym $HOME/.bashrc bash, jak pokazano.

vim $HOME/.bashrc 

Skopiuj i wklej następujące wiersze na końcu tego pliku.

## 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. Po wprowadzeniu powyższych zmian możesz pobrać plik $HOME/.bashrc lub zrestartować powłokę, jak pokazano.

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

Jak zainstalować wiele wersji Pythona w systemie Linux

5. W tym momencie powinieneś być gotowy do rozpoczęcia korzystania z pyenv. Przed zainstalowaniem dowolnej wersji Pythona możesz wyświetlić wszystkie dostępne wersje za pomocą tego polecenia.


pyenv install -l

6. Możesz teraz zainstalować wiele wersji Pythona, na przykład poprzez pyenv.

pyenv install 3.6.4
pyenv install 3.6.5

7. Aby wyświetlić listę wszystkich wersji Pythona dostępnych dla pyenv, uruchom następujące polecenie. Spowoduje to wyświetlenie tylko wersji zainstalowanych poprzez sam pyenv.

pyenv versions

8. Globalną wersję Pythona możesz sprawdzić za pomocą poniższego polecenia. Do tego czasu domyślną wersją powinna być ta ustawiona przez system, a nie pyenv.

pyenv global

Możesz ustawić globalną wersję Pythona za pomocą polecenia pyenv.

pyenv global 3.6.5
pyenv global

9. Możesz teraz ustawić lokalną wersję Pythona dla każdego projektu, na przykład, jeśli masz projekt zlokalizowany w $HOME/python_projects/test, możesz ustawić wersję Pythona za pomocą następującego polecenia.

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

10. Pyenv zarządza środowiskami wirtualnymi za pomocą wtyczki pyenv-virtualenv, która automatyzuje zarządzanie środowiskami virtualenvs i conda dla Pythona w systemie Linux i innych systemach typu UNIX.

Możesz zacząć od zainstalowania tej wtyczki za pomocą następujących poleceń.

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

11. Teraz utworzymy testowe środowisko wirtualne o nazwie venv_project1 w ramach projektu o nazwie project1 w następujący sposób.

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. Teraz, gdy wyszczególnisz wszystkie wersje Pythona, na liście powinny znaleźć się także Twoje środowiska wirtualne oraz ich lokalne wersje Pythona, jak pokazano na zrzucie ekranu.

pyenv versions

13. Aby aktywować virtualenv, na przykład venv_project1, wpisz następujące polecenie.

pyenv activate venv_project1

Uwaga: podczas pierwszego użycia najnowszej wersji wtyczki pyenv-virtualenv może pojawić się poniższy komunikat.

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

Dodaj linię export PYENV_VIRTUALENV_DISABLE_PROMPT=1 do swojego pliku $HOME/.bashrc, w którym dodałeś inne konfiguracje Pythona i pobierz plik do symulacji podkreślane zachowanie.

14. Aby dezaktywować aktywowane środowisko wirtualne, uruchom to polecenie.

pyenv deactivate

Aby uzyskać więcej informacji, możesz wyświetlić listę wszystkich poleceń pyenv za pomocą następującego polecenia.

pyenv commands

Aby uzyskać więcej informacji, przejdź do repozytorium pyenv Github: https://github.com/pyenv/pyenv

Przeczytaj także: Jak zainstalować wiele wersji PHP dla wielu witryn internetowych

Korzystanie z pyenv jest naprawdę takie proste. W tym przewodniku pokazaliśmy, jak go zainstalować, a także zademonstrowaliśmy niektóre przypadki jego użycia do zarządzania wieloma wersjami Pythona w systemie Linux. Skorzystaj z poniższego formularza opinii, aby zadać pytania lub podzielić się przemyśleniami na temat tego narzędzia.