Pyenv - instalējiet vairākas Python versijas konkrētam projektam


Vairāku Python versiju pārvaldīšana Linux sistēmā nav viegls uzdevums, it īpaši iesācējiem. Dažreiz tas kļūst vēl sliktāk, ja vēlaties vienā serverī izstrādāt un vadīt vairākus projektus ar dažādām Python versijām. Tomēr tam nevajadzētu būt, ja jūs izmantojat pyenv.

Pyenv ir vienkāršs, jaudīgs un starpplatformu rīks, lai pārvaldītu vairākas Python versijas Linux sistēmās, kas tika izmantotas.

  • Globālās Python versijas pārslēgšana katram lietotājam.
  • vietējās Python versijas iestatīšana, pamatojoties uz katru projektu.
  • virtuālās vides pārvaldība, ko izveidojusi anaconda vai virtualenv.
  • Python versijas ignorēšana ar vides mainīgo.
  • komandu meklēšana no vairākām Python versijām un citām.

Parasti visu jūsu lietojumprogrammu darbināšanai tiek izmantota viena noklusējuma Python versija, ja vien skaidri nenorādāt versiju, kuru vēlaties izmantot lietojumprogrammā. Bet, kad ir instalētas vairākas versijas, pyenv ievieš vienkāršu shims (vieglu izpildāmo failu) izmantošanas koncepciju, lai pārsūtītu komandu pareizajai Python versijai, kuru vēlaties izmantot.

Šos starplikas pyenv ievieto direktorijos, kas atrodas jūsu ceļa priekšā. Tātad, palaižot Python komandu, to pārtver atbilstošā starpība un nodod pyenv, kas pēc tam izveido jūsu lietojumprogrammā norādīto Python versiju un nodod jūsu komandas likumīgajai Python instalācijai. Šis ir pārskats par pyenv darbību.

Šajā rakstā mēs parādīsim, kā Linux instalēt jaunāko pyenv versiju. Mēs parādīsim arī pirmos trīs iepriekš uzskaitītos lietošanas gadījumus.

Kā instalēt Pyenv Linux

1. Vispirms instalējiet visas nepieciešamās pakotnes dažādu Python versiju instalēšanai no avotiem, izmantojot šādu komandu savā attiecīgajā Linux izplatīšanā.

------------ 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. Pēc tam paņemiet jaunāko pyenv avota koku no sava Github krātuves un instalējiet to $HOME/.pyenv ceļā, izmantojot šādu komandu.

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

3. Tagad jums jāiestata vides mainīgais PYENV_ROOT, lai tas norādītu uz ceļu, kur instalējāt pyenv, un to eksportētu. Pēc tam pievienojiet $PYENV_ROOT/bin savam PATH, lai palaistu pyenv komandrindas utilītu tāpat kā citas sistēmas komandas.

Jums arī jāiespējo shims, kā arī automātiskā pabeigšana, pievienojot čaulai pyenv init. Veiciet visas šīs darbības savā $HOME/.bashrc bash startēšanas failā, kā parādīts.

$ vim $HOME/.bashrc 

Nokopējiet un ielīmējiet šīs rindiņas šī faila beigās.

## 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. Kad esat veicis iepriekš minētās izmaiņas, varat vai nu avotēt failu $HOME/.bashrc, vai arī restartēt apvalku, kā parādīts.

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

Kā Linux instalēt vairākas Python versijas

5. Šajā brīdī jums vajadzētu būt gatavam sākt lietot pyenv. Pirms jebkuras Python versijas instalēšanas ar šo komandu varat apskatīt visas pieejamās versijas.

$ pyenv install -l

6. Tagad varat instalēt vairākas Python versijas, piemēram, izmantojot pyenv.

$ pyenv install 3.6.4
$ pyenv install 3.6.5

7. Lai uzskaitītu visas Pyyen pieejamās Python versijas, palaidiet šādu komandu. Tas parādīs tikai tās versijas, kas instalētas, izmantojot pašu pyenv.

$ pyenv versions

8. Jūs varat pārbaudīt globālo Python versiju ar šādu komandu, līdz šim brīdim noklusējuma versijai jābūt sistēmai, nevis pyenv.

$ pyenv global

Izmantojot komandu pyenv, varat iestatīt globālo pitona versiju.

$ pyenv global 3.6.5
$ pyenv global

9. Tagad jūs varat iestatīt vietējo Python versiju katram projektam, piemēram, ja jums ir projekts, kas atrodas $HOME/python_projects/test, varat iestatīt tā Python versiju, izmantojot šādu komandu.

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

10. Pyenv pārvalda virtuālās vides, izmantojot spraudni pyenv-virtualenv, kas automatizē Python Linux un citu UNIX līdzīgu sistēmu virtuālo un conda vides pārvaldību.

Jūs varat sākt, instalējot šo spraudni, izmantojot šādas komandas.

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

11. Tagad mēs izveidosim testa virtuālo vidi ar nosaukumu venv_project1 zem projekta ar nosaukumu project1 šādi.

$ cd python_projects
$ mkdir project1
$ cd project1
$ pyenv virtualenv 3.6.5 venv_project1

12. Tagad, uzskaitot visas Python versijas, ir jāuzskaita arī jūsu virtuālās vides, kā arī to vietējās pitona versijas, kā parādīts ekrānuzņēmumā.

$ pyenv versions

13. Lai aktivizētu virtualenv, piemēram, venv_project1, ierakstiet šādu komandu.

$ pyenv activate venv_project1

Piezīme. Pirmoreiz lietojot spraudņa pyenv-virtualenv jaunāko versiju, varat saņemt tālāk redzamo ziņojumu.

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

Pievienojiet rindas eksportu PYENV_VIRTUALENV_DISABLE_PROMPT = 1 failā $HOME/.bashrc, kur pievienojāt citas pyenv konfigurācijas, un avotu failu, lai simulētu uzsvērto darbību.

14. Lai deaktivizētu aktivēto virtualenv, palaidiet šo komandu.

$ pyenv deactivate

Lai iegūtu papildinformāciju, varat uzskaitīt visas pyenv komandas, izmantojot šādu komandu.

$ pyenv commands

Lai iegūtu papildinformāciju, dodieties uz pyenv Github repozitoriju: https://github.com/pyenv/pyenv

Pyenv izmantošana patiešām ir tik vienkārša. Šajā rokasgrāmatā mēs parādījām, kā to instalēt, kā arī parādījām dažus tā izmantošanas gadījumus, lai pārvaldītu vairākas pitona versijas Linux sistēmā. Izmantojiet tālāk sniegto atsauksmju veidlapu, lai uzdotu jautājumus vai dalītos domās par šo rīku.