Python 2 vs. Python 3: verschil tussen versies

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken
(Concurrent versions)
(MySQL.connector vereist 3.7 (okt. 2019))
 
(9 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 63: Regel 63:
 
</pre>
 
</pre>
  
== Concurrent versions & libraries ==
+
== Incompatibele minor-versies? ==
  
Het is nromaal dat meerdere versies van Python op een systeem zijn geïnstalleerd [https://en.wikibooks.org/wiki/Python_Programming/Creating_Python_Programs], zoals al bleek uit de voorbeelden hiervoor. Het wordt pas vervelend als ''biblioheken'' van bv. 3.5 en 3.7 niet in één script zijn toe te passen. Of zie ik iets over het hoofd?
+
Het is normaal dat meerdere versies van Python op een systeem zijn geïnstalleerd [https://en.wikibooks.org/wiki/Python_Programming/Creating_Python_Programs], zoals al bleek uit de voorbeelden hiervoor. Het wordt pas vervelend dat het er op lijkt, dat minor-versies niet met elkaar compatibel zijn. Je kunt dus niet in één script bv. 3.5- & 3.7-bibliotheken gebruiken.
 +
 
 +
[https://stackoverflow.com/questions/52138280/easiest-way-to-use-python-3-6-and-3-7-on-same-computer] geeft dit voorbeeld:
 +
 
 +
<pre>
 +
I have Python 3.7 installed on my computer. I want to use tensorflow and just found out that it
 +
basically doesn't support 3.7, so I'd like to (also) install Python 3.6.
 +
 
 +
Any suggestions of how to do that? Do I have to uninstall 3.7 and replace it by 3.6 or is there
 +
a way to just use 3.6 for the stuff related to tensorflow?
 +
</pre>
 +
 
 +
De antwoorden behandelen verschillende manieren om tussen versies van Python te wisselen. Daar schijnen tools voor te zijn zoals <code>virtualenv</code>, <code>pipenv</code> en <code>anaconda</code>. Of gewoon een andere interpretator aanroepen.
  
 
== Op welke versie standaardiseer ik? ==
 
== Op welke versie standaardiseer ik? ==
Regel 75: Regel 87:
 
* Jan. 2019: Ik blijk beide versies op m'n laptop te hebben + wisselen is gemakkelijk → '''3.x'''
 
* Jan. 2019: Ik blijk beide versies op m'n laptop te hebben + wisselen is gemakkelijk → '''3.x'''
  
== Ondersteuning Python 2 stopt! (aug. 2019) ==
+
=== Ondersteuning Python 2 stopt (aug. 2019) ===
  
 
Als ik nog enige twijfel zou hebben, is die nu weg: https://tweakers.net/nieuws/156416/ncsc-waarschuwt-voor-einde-ondersteuning-python-2.html
 
Als ik nog enige twijfel zou hebben, is die nu weg: https://tweakers.net/nieuws/156416/ncsc-waarschuwt-voor-einde-ondersteuning-python-2.html
 +
 +
=== MySQL.connector vereist 3.7 (okt. 2019) ===
 +
 +
Oracle's connector voor MySQL-databases, vereist versie 3.7. Sois → '''3.7'''. Waarschijnlijk zal ik meerdere minor-versies naast elkaar gebruiken.
  
 
== Zie ook ==
 
== Zie ook ==
  
 
* [[Installatie & bijwerken van Python]]
 
* [[Installatie & bijwerken van Python]]
 +
 +
== Bronnen ==
 +
 +
* https://stackoverflow.com/questions/52138280/easiest-way-to-use-python-3-6-and-3-7-on-same-computer
 +
* https://virtualenv.pypa.io/en/stable/
 +
* https://github.com/pypa/pipenv
 +
* https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html

Huidige versie van 9 okt 2019 om 08:01

Python kent twee actuele major versies: 2.x en 3.x. Daarnaast lijken 3.5 & 3.7 van elkaar gescheiden te zijn (okt. 2019). Daarnaast is er een goede kans, dat je verscheidene versies tegelijkertijd op een computer hebt. Het maakt het er niet gemakkelijker op.

Versie achterhalen - Vanuit een script

Vanuit een script achterhalen met welke versie van Python het is aangeroepen [1]. Dit werkt voor zowel Python 2.x als 3.x:

import sys
print (sys.version)

Voorbeelden:

#! /usr/bin/python

import sys
print (sys.version)

geeft

2.7.12 (default, Nov 12 2018, 14:36:49) 
[GCC 5.4.0 20160609]

en

#! /usr/bin/python3

import sys
print (sys.version)

geeft

3.5.2 (default, Nov 12 2018, 13:43:14) 
[GCC 5.4.0 20160609]

Versie achterhalen - Vanuit bash

Bijvoorbeeld

python -V
python3 -V
python3.4 -V
python3.7 -V

Voorbeeld (okt. 2019):

python -V
Python 2.7.12
python3 -V
Python 3.5.2

Incompatibele minor-versies?

Het is normaal dat meerdere versies van Python op een systeem zijn geïnstalleerd [2], zoals al bleek uit de voorbeelden hiervoor. Het wordt pas vervelend dat het er op lijkt, dat minor-versies niet met elkaar compatibel zijn. Je kunt dus niet in één script bv. 3.5- & 3.7-bibliotheken gebruiken.

[3] geeft dit voorbeeld:

I have Python 3.7 installed on my computer. I want to use tensorflow and just found out that it 
basically doesn't support 3.7, so I'd like to (also) install Python 3.6.

Any suggestions of how to do that? Do I have to uninstall 3.7 and replace it by 3.6 or is there 
a way to just use 3.6 for the stuff related to tensorflow?

De antwoorden behandelen verschillende manieren om tussen versies van Python te wisselen. Daar schijnen tools voor te zijn zoals virtualenv, pipenv en anaconda. Of gewoon een andere interpretator aanroepen.

Op welke versie standaardiseer ik?

Python 2.x stamt uit 2008, dus het ligt voor de hand dat 3.x de juiste keuze is. Echter, een decennium later blijkt 2.x nog steeds relevant te zijn:

  • Half 2018: Op mijn laptop is 2.7 geïnstalleerd → Hierop standaardiseer ik
  • Jan. 2019: Nog steeds 2.7 op m'n laptop → 2.7
  • Jan. 2019: Ik blijk beide versies op m'n laptop te hebben + wisselen is gemakkelijk → 3.x

Ondersteuning Python 2 stopt (aug. 2019)

Als ik nog enige twijfel zou hebben, is die nu weg: https://tweakers.net/nieuws/156416/ncsc-waarschuwt-voor-einde-ondersteuning-python-2.html

MySQL.connector vereist 3.7 (okt. 2019)

Oracle's connector voor MySQL-databases, vereist versie 3.7. Sois → 3.7. Waarschijnlijk zal ik meerdere minor-versies naast elkaar gebruiken.

Zie ook

Bronnen