Hoe Python op een slimme manier te installeren

Python is gebruiksvriendelijk, vriendelijk voor de beginner en krachtig genoeg om robuuste software te maken voor bijna elke toepassing. Maar het is nog steeds een stuk software zoals elk ander, wat betekent dat het moeilijk kan zijn om op te zetten en te beheren.

In dit artikel laten we zien hoe u Python op de juiste manier instelt: hoe u de juiste versie kiest, hoe u voorkomt dat meerdere versies op elkaar trappen en hoe u alle andere scherpe randen en mogelijke valkuilen langs de manier.

Kies de juiste Python-versie en distributie

Omwille van de compatibiliteit met modules van derden, is het altijd het veiligst om een ​​Python-versie te kiezen die een belangrijke revisie achter de huidige is .

Op het moment van schrijven is Python 3.8.1 de meest recente versie. De veilige gok is dus om de laatste update van Python 3.7 te gebruiken (in dit geval Python 3.7.6). U kunt altijd de meest recente versie van Python op een gecontroleerde manier uitproberen - bijvoorbeeld in een VM of een testmachine - maar één versie teruggaan garandeert de beste compatibiliteit met gangbare Python-pakketten van derden.

Python is ook beschikbaar in verschillende distributies, op vrijwel dezelfde manier als Linux. In tegenstelling tot Linux biedt Python echter één, gouden standaard, "officiële" editie waarop u altijd kunt terugvallen: CPython, de versie die wordt geleverd door de Python Software Foundation op python.org. Nogmaals, dit is de veiligste en meest breed compatibele distributie, degene die niemand wordt ontslagen omdat hij wordt geplukt. (Misschien wilt u later andere Python-distributies onderzoeken, omdat ze betrekking hebben op specifieke gebruikssituaties die u mogelijk heeft, maar we zullen ze hier niet beschouwen.)

Een belangrijke keuze die u moet maken, vooral in Windows, is of u de 32-bits of 64-bits versie van Python wilt gebruiken. Het meest waarschijnlijke antwoord is 64-bits, om de volgende redenen:

  • De meeste moderne besturingssystemen gebruiken standaard een 64-bits editie van Python. Windows-gebruikers kunnen 32-bits edities van Python op 64-bits Windows draaien, maar tegen geringe prestatiekosten. 
  • 32-bits Python, en 32-bits apps in het algemeen, hebben per keer slechts toegang tot 4 GB geheugen. 64-bits toepassingen hebben deze limiet niet, daarom werken veel tools voor gegevensanalyse en machine learning voor Python het beste in 64-bits incarnaties. Sommige zijn alleen beschikbaar in 64-bits versies. 

De enige keer dat u de 32-bits versie van Python moet kiezen, is als u vastzit aan een 32-bits versie van Windows, of als u een module van derden moet gebruiken die alleen beschikbaar is in een 32-bits versie.

Installeer Python op Windows op een slimme manier

Python wordt op Windows op vrijwel dezelfde manier geïnstalleerd als elke andere applicatie, door middel van een installatieprogramma dat u door het installatieproces leidt.

Standaard plaatst het Python-installatieprogramma voor Windows de uitvoerbare bestanden in de AppDatamap van de gebruiker , zodat het geen beheerdersrechten vereist. Als je de enige gebruiker op het systeem bent, wil je Python misschien in een map op een hoger niveau plaatsen (bijvoorbeeld C:\Python3.7) om het gemakkelijker te vinden. Met het Windows-installatieprogramma kunt u de doelmap specificeren.

Kies het juiste Python-installatieprogramma voor Windows

Python.org biedt een aantal verschillende incarnaties van Python voor Windows. Naast de reeds genoemde 32-bit ("x86") en 64-bit ("x86-64") versies, kunt u kiezen uit het in te sluiten zip-bestand, het uitvoerbare installatieprogramma en het webgebaseerde installatieprogramma. Dit is waar die allemaal over gaan:

  • Het uitvoerbare installatieprogramma is slechts een .EXE-bestand dat het installatieproces voor Python uitvoert. Dit is de gemakkelijke standaardkeuze en wordt het meest gebruikt.
  • Het webgebaseerde installatieprogramma is hetzelfde als het uitvoerbare installatieprogramma, behalve dat het afzonderlijk de bits downloadt die nodig zijn om de installatie uit te voeren. Dit verkleint de omvang van het daadwerkelijke installatieprogramma aanzienlijk, maar vereist natuurlijk een netwerkverbinding.
  • Het in te sluiten zip-bestand is een zelfstandige, minimale kopie van de Python-runtime die zonder afhankelijkheden in een enkele map past. Het is handig om te bundelen als je een Python-app handmatig wilt distribueren, of als je een snelle, eenmalige Python-installatie nodig hebt om iets ter plekke te testen. Maar de in te sluiten zip bevat geen  pipof een van de andere handige tools die bij een volledige installatie worden geleverd, dus het is alleen voor gebruik door experts.

Installeer Python met een pakketbeheerder voor Windows

Nog een andere optie is om een ​​van de pakketbeheersystemen te gebruiken die voor Windows bestaan. NuGet, de pakketbeheerder voor .NET, biedt Python aan in zijn repository. Python wordt daar echter voornamelijk aangeboden om het als een component in een .NET-toepassing te gebruiken, niet als een manier om een ​​zelfstandig exemplaar van Python voor algemeen gebruik te installeren. U zult waarschijnlijk merken dat uw Python-instantie gemakkelijker te beheren is als u Python op de normale manier installeert. 

Chocolatey, een meer algemeen Windows-pakketbeheersysteem, biedt ook Python. Chocolatey is een handige manier om het Python-installatieprogramma uit te voeren en de aanwezigheid van de Python-taalruntime in uw systeem te volgen - en dus een betere keuze dan NuGet. Het is echter het beste om het mixen en matchen van Chocolatey-installaties en reguliere installaties van Python op hetzelfde systeem te vermijden.

Installeer Python op Linux op een slimme manier

Omdat Linux-distributies aanzienlijk verschillen, is de typische manier om Python op Linux te installeren, het gebruik van de pakketbeheerder van de specifieke distro. Ubuntu en Fedora hebben bijvoorbeeld totaal verschillende procedures voor het installeren van Python. Op Linux (en MacOS) is de doelmap voor de installatie meestal vooraf bepaald en gebaseerd op het Python-versienummer, bijvoorbeeld /usr/bin/python3.Xop Linux of /usr/local/opt/python/op de Mac.

Een manier om te voorkomen dat u met de fijne kneepjes van Linux-pakketbeheerders omgaat, is door een Python-runtime in containers te gebruiken. Containers werken geïsoleerd van de rest van het systeem, dus u hoeft zich geen zorgen te maken dat verschillende Python-runtimes op elkaars tenen trappen. Als uw workflow echter nog geen containers bevat, moet u tijd en energie besteden om aan de slag te gaan met Docker. (Merk op dat u Python in containers ook op Windows kunt gebruiken.)

Een tool genaamd asdf-vm komt hier ook van pas. Je kunt asdf-vm gebruiken om meerdere Python-runtimes op Unix-achtige systemen (Linux en MacOS) te beheren - en ook meerdere runtimes voor Node.js, Ruby, Elixir en vele andere talen. Dus als je merkt dat je met versies van andere dingen naast Python jongleert, wil je asdf-vm bekijken.

Installeer Python op MacOS op een slimme manier

MacOS wordt traditioneel geleverd met een geïnstalleerde versie van Python, maar nooit recenter dan Python 2.7. Dit veroorzaakte problemen toen Python 3 arriveerde, omdat de twee versies vaak met elkaar in conflict waren. De officiële Python-documentatie bevat enkele opmerkingen over dit effect, maar biedt geen meer gedetailleerde aanbevelingen dan ervoor te zorgen dat u het juiste pad gebruikt voor de Python-instantie die u wilt.

Een veelgebruikte manier om Python-runtimes op MacOS te beheren, is via de Homebrew-pakketbeheerder. Homebrew biedt een consistente interface voor het downloaden, installeren, beheren en verwijderen van Python en andere opdrachtregel-apps van derden.

Installeer Python-pakketten op een slimme manier

Als je eenmaal een basisinstallatie van een Python-versie hebt ingesteld, begin dan niet direct pakketten erin te installeren met pip - nee, zelfs niet als je van plan bent Python voor slechts één project te gebruiken. Stel uw projectmappen in, installeer virtuele Python-omgevingen erin en installeer vervolgens pakketten in die virtuele omgevingen. Op deze manier blijft de basisinstallatie schoon.

Kijk naar het Poetry-project voor een manier om meerdere projecten op hoog niveau te beheren met virtuele omgevingen en afhankelijkheden. Poëzie biedt een opdrachtregelprogramma voor het beheren van virtuele omgevingen en afhankelijkheden op een hoog niveau.

Installeer meerdere Python-versies naast elkaar

Het moeilijkste probleem bij het omgaan met Python-installaties is hoe om te gaan met verschillende versies van Python die naast elkaar zijn geïnstalleerd. Hier gelden twee universele vuistregels:

  • Installeer elke versie altijd in een andere map.
  • Zorg ervoor dat eventuele systeempaden zo zijn geconfigureerd dat ze eerst verwijzen naar de versie die u standaard wilt uitvoeren.

Het draaien van meerdere Python-versies pleit sterk voor virtuele omgevingen per project. Wanneer de virtuele omgeving is geactiveerd, wordt alle Python-activiteit binnen de context van het project automatisch naar de juiste versie van Python gestuurd, 

Een andere optie die Windows-gebruikers moeten bepalen welke Python-versie ze moeten gebruiken als er meerdere zijn geïnstalleerd, is de pylauncher-app. Tijdens de installatie van Python krijg je de mogelijkheid om het pyopstartprogramma te installeren , een klein uitvoerbaar bestand waarmee je (via opdrachtregelvlaggen) kunt selecteren welke versie van Python je voor een bepaald script wilt gebruiken. Om bijvoorbeeld pipvoor Python 3.7 te draaien , voert u in  py -3.7 -m pip.

Upgrade Python op een slimme manier

Kleine revisie-upgrades voor Python - bijvoorbeeld Python 3.7.2 naar Python 3.7.3 - zijn over het algemeen eenvoudig genoeg. Bij Windows detecteert het installatieprogramma de aanwezigheid van de bestaande versie en werkt deze bij. Op Linux en MacOS doet het installatieprogramma of de pakketbeheerder doorgaans hetzelfde.

Alle virtuele omgevingen die u hebt gemaakt, moeten echter ook worden geüpgraded; ze upgraden niet automatisch. Om Python in een virtuele omgeving te upgraden, navigeert u eenvoudig naar de virtuele omgevingsmap en voert u in  venv --upgrade. Nogmaals, er rekening mee dat dit het beste werkt alleen voor kleine punt herziening upgrades - als Python 3.7.2 Python 3.7.3.

Als je een belangrijke revisie-upgrade uitvoert, zoals Python 3.7 naar Python 3.8, kun je het beste gebruiken venvom een ​​nieuwe, aparte virtuele omgevingssubdirectory in de projectdirectory te maken, eventuele afhankelijkheden erin opnieuw te installeren en over te schakelen naar het gebruik van de nieuwe virtuele omgeving. De meeste IDE's met Python-ondersteuning (bijv. Microsoft Visual Studio Code) detecteren meerdere virtuele omgevingen in een project en stellen u in staat ertussen te schakelen.