Quelle version de Python est-ce que j'ai?

58

Comment puis-je savoir quelles versions de Python je possède?

J'utilise Ubuntu 14.04 (Trusty Tahr).

    
posée TechJhola 31.07.2014 - 17:52
la source

8 réponses

72

Vous pouvez utiliser python -V (et al.) pour vous montrer la version de Python résolue par la commande python . Si c'est tout ce dont vous avez besoin, vous avez terminé. Mais pour voir toutes les versions de python de votre système, cela prend un peu plus de temps.

Dans Ubuntu, nous pouvons vérifier la résolution avec readlink -f $(which python) . Dans les cas par défaut dans 14.04, cela désignera simplement /usr/bin/python2.7 .

Nous pouvons l'enchaîner pour afficher la version de cette version de Python:

$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/usr/bin/python2.7: Python 2.7.6

Mais cela ne nous dit encore que notre résolution actuelle de python . Si nous étions dans un Virtualenv (un système de gestion de pile Python commun), python pourrait se transformer en une version différente:

$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4

Ceci est une sortie réelle.

Le fait est que des centaines de versions différentes de Python pourraient être secrètes autour de votre système, soit sur des chemins ajoutés contextuellement, soit sous différents noms binaires (comme python3 ).

Si nous supposons qu'un fichier binaire Python va toujours s'appeler python<something> et être un fichier binaire, nous pouvons simplement rechercher dans tout le système les fichiers correspondant à ces critères:

$ sudo find / -type f -executable -iname 'python*' -exec file -i '{}' \; | awk -F: '/x-executable; charset=binary/ {print }' | xargs readlink -f | sort -u | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4
/media/ned/websites/venvold/bin/python: Python 2.7.4
/srv/chroot/precise_i386/usr/bin/python2.7: Python 2.7.3
/srv/chroot/trusty_i386/usr/bin/python2.7: Python 2.7.6
/srv/chroot/trusty_i386/usr/bin/python3.4: Python 3.4.0
/srv/chroot/trusty_i386/usr/bin/python3.4m: Python 3.4.0
/usr/bin/python2.7: Python 2.7.6
/usr/bin/python2.7-dbg: Python 2.7.6
/usr/bin/python3.4: Python 3.4.0
/usr/bin/python3.4dm: Python 3.4.0
/usr/bin/python3.4m: Python 3.4.0
/web/venvold/bin/python: Python 2.7.4

C'est évidemment une commande assez hideuse, mais il s’agit là encore d’un résultat réel et il semble avoir fait un travail assez minutieux.

    
réponse donnée Oli 01.08.2014 - 15:10
la source
54

Tapez dans le terminal ( Ctrl + Alt + T ):

python -V

ou

python --version

Vous pouvez trouver une liste d'options / paramètres pour de nombreuses commandes dans le terminal en tapant la commande suivie de - help

Exemple:

python --help

Manuel / pages de manuel également disponibles pour la plupart de ces CLI qui peuvent être affichées par man <command> (Ex: man python )

De man python :

COMMAND LINE OPTIONS
        -V ,  --version
              Prints the Python version number of the executable and exits.

Il y a aussi python3 installé sur de nombreuses machines, vous pouvez donc faire:

python3 --version

pour savoir ce que python 3.x exécute.

    
réponse donnée iffy 31.07.2014 - 17:55
la source
29
python --version

et

python2 --version

affiche la version de Python 2.x,

python3 --version

la version installée de Python 3.x

    
réponse donnée Florian Diesch 31.07.2014 - 17:56
la source
8

Lorsque vous exécutez python dans le terminal, cela produit une sortie comme celle-ci:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Voir la première ligne - Python 2.7.6 .

Exécute également python3 . J'ai 3.4.1

Python 3.4.1 (default, Jul 31 2014, 12:46:17) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Cependant, cela ne vous les montrera pas tous. Si vous avez 2 versions de python 3.X.x ou plus, vous n'en verrez que la dernière.

Par défaut, le 14.04, vous avez les versions 2.7.6 et 3.4.0. Comme vous pouvez le voir, j'ai mis à jour 3.4.1. Je sais que j'ai toujours la version 3.4.0 parce que quand je vais à /usr/bin je vois python3.4 , et si je lance /usr/bin/python3.4 dans la ligne de commande, j'obtiens 3.4.0 et que /usr/local/bin/python3.4 me donne 3.4. 1

    
réponse donnée Tim 31.07.2014 - 17:59
la source
5

Vous pouvez également vérifier la version de Python à partir du code en utilisant le module platform de la bibliothèque standard. Il existe deux fonctions: platform.python_version() (renvoie la chaîne) et platform.python_version_tuple() (renvoie le tuple). Script:

import platform

print(platform.python_version())
print(platform.python_version_tuple())

En cours d'exécution:

$ python test.py 
3.4.1
('3', '4', '1')
$ python2.7 test.py 
2.7.8
('2', '7', '8')
    
réponse donnée Nykakin 01.08.2014 - 21:01
la source
3

Si vous souhaitez voir toutes les versions de Python disponibles en tant que commandes, exécutez compgen -c python . E.g:

$ compgen -c python
python2.7
python3.4m
python3.4
python3m
python
python3
python2

Si vous voulez obtenir la version de chacun de ces éléments, voici un petit article que j'ai écrit:

$ for p in $(compgen -c python); do printf "%-16s" $p; $p --version; done
python2.7      Python 2.7.6
python3.4m     Python 3.4.3
python3.4      Python 3.4.3
python3m       Python 3.4.3
python         Python 2.7.6
python3        Python 3.4.3
python2        Python 2.7.6

Mise à jour : j'ai simplement ajouté des packages et remarqué que les programmes python*-config ne prennent pas en charge l'indicateur --version . E.g:

$ python3-config --version
Usage: /usr/bin/python3-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir
    
réponse donnée wjandrea 12.03.2017 - 18:49
la source
2

Ouvrez facilement le terminal et procédez comme suit:

Écrire

python

pour vérifier votre version 2.x Dans mon cas, il apparaîtra:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Pour le 3.x, écrivez:

python3

Dans mon cas, il apparaît:

Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.

Pour les deux cas, pour sortir du shell Python, écrivez:

 exit()
    
réponse donnée Willington 31.07.2014 - 18:06
la source
1
  • In shell terminal

    $ which -a python répertorie tous vos python .

    $ which -a python2.7 répertorie tous vos python2.7 .

    $ /usr/bin/python -V donne des informations sur la version de /usr/bin/python .

  • archiver le script python

voici une illustration dans ipython shell:

In [1]: import sys

In [2]: sys.version
2.7.11 |Anaconda 2.5.0 (64-bit)| (default, Dec  6 2015, 18:08:32) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]

In [3]: sys.version_info
sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)

In [4]: sys.version_info >= (2,7)
Out[4]: True

In [5]: sys.version_info >= (3,)
Out[5]: False
    
réponse donnée Lee 26.05.2016 - 16:04
la source

Lire d'autres questions sur les étiquettes