Zoeken op website

Pyenv - Installeer meerdere Python-versies voor een specifiek project


Het beheren van meerdere versies van Python op een Linux-systeem is geen gemakkelijke taak, vooral niet voor beginners. Soms wordt het zelfs nog erger als je meerdere projecten met verschillende Python-versies op dezelfde server wilt ontwikkelen en uitvoeren. Dit zou echter niet het geval moeten zijn als u pyenv gebruikt.

Lees ook: hoe u de nieuwste Python 3.6-versie onder Linux installeert

Wat is Pyenv?

Pyenv is een eenvoudige, krachtige en platformonafhankelijke tool voor het beheren van meerdere Python-versies op Linux-systemen, die voorheen werden gebruikt.

  • Per gebruiker overschakelen naar de globale Python-versie.
  • het instellen van de lokale Python-versie per project.
  • Beheer van virtuele omgevingen gemaakt door anaconda of virtualenv.
  • De Python-versie overschrijven met een omgevingsvariabele.
  • Zoekopdrachten uit meerdere versies van Python en meer.

Hoe werkt pyenv?

Meestal wordt één standaardversie van Python gebruikt om al uw applicaties uit te voeren, tenzij u expliciet specificeert welke versie u binnen de applicatie wilt gebruiken. Maar pyenv implementeert een eenvoudig concept van het gebruik van shims (lichtgewicht uitvoerbare bestanden) om je opdracht door te geven aan de juiste Python-versie die je wilt gebruiken, wanneer je meerdere versies hebt geïnstalleerd.

Deze shims worden door pyenv in een directory ingevoegd vóór je PATH. Dus wanneer u een Python-opdracht uitvoert, wordt deze onderschept door de juiste shim en doorgegeven aan pyenv, die vervolgens de Python-versie vaststelt die door uw applicatie is gespecificeerd, en doorgeeft uw opdrachten mee naar de rechtmatige Python-installatie. Dit is een overzicht van hoe pyenv werkt.

In dit artikel laten we zien hoe je de nieuwste versie van pyenv in Linux installeert. We zullen ook de eerste drie hierboven genoemde toepassingen demonstreren.

Hoe Pyenv onder Linux te installeren

1. Installeer eerst alle vereiste pakketten voor het installeren van verschillende Python-versies vanuit bronnen met behulp van de volgende opdracht op uw respectievelijke Linux-distributie.

------------ 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. Pak vervolgens de nieuwste pyenv broncodestructuur uit de Github-repository en installeer deze in het pad $HOME/.pyenv met behulp van de volgende opdracht.

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

3. Nu moet je de omgevingsvariabele PYENV_ROOT zo instellen dat deze verwijst naar het pad waar je pyenv hebt geïnstalleerd en deze exporteert. Voeg vervolgens $PYENV_ROOT/bin toe aan uw PATH om het opdrachtregelhulpprogramma pyenv uit te voeren, net als alle andere systeemopdrachten.

Je moet ook shims en automatische aanvulling inschakelen door de pyenv init aan je shell toe te voegen. Doe al deze dingen in je $HOME/.bashrc bash-opstartbestand, zoals weergegeven.

vim $HOME/.bashrc 

Kopieer en plak de volgende regels aan het einde van dit bestand.

## 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. Zodra u de bovenstaande wijzigingen heeft aangebracht, kunt u het $HOME/.bashrc-bestand sourcen of de shell opnieuw starten, zoals weergegeven.

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

Hoe meerdere Python-versies in Linux te installeren

5. Op dit punt zou u klaar moeten zijn om pyenv te gaan gebruiken. Voordat u een Python-versie installeert, kunt u met deze opdracht alle beschikbare versies bekijken.


pyenv install -l

6. Je kunt nu bijvoorbeeld meerdere Python-versies installeren via pyenv.

pyenv install 3.6.4
pyenv install 3.6.5

7. Om alle Python-versies weer te geven die beschikbaar zijn voor pyenv, voert u de volgende opdracht uit. Hierdoor worden alleen versies weergegeven die zijn geïnstalleerd via pyenv zelf.

pyenv versions

8. Je kunt de algemene Python-versie controleren met het volgende commando. Tegen die tijd zou de standaardversie de versie moeten zijn die door het systeem is ingesteld, en niet pyenv.

pyenv global

U kunt de globale versie van Python instellen met de opdracht pyenv.

pyenv global 3.6.5
pyenv global

9. U kunt nu de lokale Python-versie per project instellen. Als u bijvoorbeeld een project heeft dat zich in $HOME/python_projects/test bevindt, kunt u dit instellen de Python-versie ervan met behulp van de volgende opdracht.

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

10. Pyenv beheert virtuele omgevingen via de pyenv-virtualenv plug-in die het beheer van virtualenvs en conda omgevingen voor Python automatiseert op Linux en andere UNIX-achtige systemen.

U kunt beginnen met het installeren van deze plug-in met behulp van de volgende opdrachten.

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

11. Nu gaan we als volgt een virtuele testomgeving maken met de naam venv_project1 onder een project met de naam project1.

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. Als u nu alle Python-versies opsomt, zouden zowel uw virtuele omgevingen als hun lokale Python-versies ook moeten worden vermeld, zoals weergegeven in de schermafbeelding.

pyenv versions

13. Om een virtualenv te activeren, bijvoorbeeld venv_project1, typt u de volgende opdracht.

pyenv activate venv_project1

Opmerking: Mogelijk krijg je het onderstaande bericht wanneer je de nieuwste versie van de pyenv-virtualenv plug-in voor het eerst gebruikt.

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

Voeg de regel export PYENV_VIRTUALENV_DISABLE_PROMPT=1 toe aan uw $HOME/.bashrc bestand, waar u andere pyenv-configuraties heeft toegevoegd, en bron het bestand om te simuleren het gedrag dat benadrukt wordt.

14. Voer deze opdracht uit om de geactiveerde virtualenv te deactiveren.

pyenv deactivate

Voor meer informatie kunt u alle pyenv-opdrachten weergeven met behulp van de volgende opdracht.

pyenv commands

Ga voor meer informatie naar de pyenv Github-repository: https://github.com/pyenv/pyenv

Lees ook: Hoe u meerdere PHP-versies voor meerdere websites installeert

Het gebruik van pyenv is echt zo eenvoudig. In deze handleiding hebben we laten zien hoe je het installeert, en hebben we enkele gebruiksscenario's gedemonstreerd voor het beheren van meerdere Python-versies op een Linux-systeem. Gebruik het onderstaande feedbackformulier om vragen te stellen of uw mening over deze tool te delen.