Comment puis-je savoir quelles versions de Python je possède ?
J'utilise Ubuntu 14.04 (Trusty Tahr).
Comment puis-je savoir quelles versions de Python je possède ?
J'utilise Ubuntu 14.04 (Trusty Tahr).
Vous pouvez utiliser python -V
(et al.) pour vous montrer la version de Python que la python
se résout en. Si c'est tout ce dont vous avez besoin, vous avez terminé. Mais pour voir toutes les versions de Python dans votre système, il faut un peu plus.
Dans Ubuntu, nous pouvons vérifier la résolution avec readlink -f $(which python)
. Dans les cas par défaut dans 14.04, cela pointera simplement sur /usr/bin/python2.7
.
Nous pouvons enchaîner ceci pour montrer 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 toujours que ce que notre actuel python
la résolution est. Si nous étions dans un Virtualenv (un système commun de gestion de la pile Python) python
pourrait se résoudre à une version différente :
$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4
Il s'agit d'une production réelle.
Le fait est qu'il peut y avoir des centaines de versions différentes de Python cachées dans votre système, soit sur des chemins ajoutés contextuellement, soit sous des noms binaires différents (tels que python3
).
Si nous supposons qu'un binaire Python sera toujours appelé python<something>
et être un fichier binaire, nous pouvons simplement rechercher dans tout le système les fichiers qui correspondent à ces critères :
$ sudo find / -type f -executable -iname 'python*' -exec file -i '{}' \; | awk -F: '/x-executable; charset=binary/ {print $1}' | 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'une sortie réelle et il semble qu'elle ait fait un travail assez complet.
Tapez ce qui suit 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 par --help
Exemple :
python --help
Des manuels/manpages sont également disponibles pour la plupart de ces CLI qui peuvent être affichés 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 existe également python3
installé sur de nombreuses machines, donc vous pouvez le faire :
python3 --version
pour savoir quel Python 3.x vous utilisez.
Si vous voulez voir toutes les versions de Python disponibles sous forme de commandes, exécutez compgen -c python
. Par exemple
$ compgen -c python | sort -u
python
python2
python2.7
python3
python3.4
python3.4m
python3m
Si vous voulez obtenir la version de chacun des éléments ci-dessus :
compgen -c python | sort -u | grep -v -- '-config$' | while read -r p; do
printf "%-14s " "$p"
"$p" --version
done
python Python 2.7.6
python2 Python 2.7.6
python2.7 Python 2.7.6
python3 Python 3.4.3
python3.4 Python 3.4.3
python3.4m Python 3.4.3
python3m Python 3.4.3
Note : Je filtre les python*-config
programmes avec grep -v
puisqu'ils ne supportent pas le --version
drapeau. Par exemple :
$ python3-config --version
Usage: /usr/bin/python3-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir
Lorsque vous exécutez python
dans le terminal, il produira 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écutez également python3
. J'ai la version 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 ou plusieurs versions de Python 3.X.x, vous ne verrez que la dernière.
Par défaut sur 14.04, vous avez 2.7.6 et 3.4.0. Comme vous pouvez le voir, j'ai mis à jour en 3.4.1. Je sais que j'ai toujours la version 3.4.0 parce que lorsque je vais sur le site de /usr/bin
Je vois. python3.4
et si j'exécute /usr/bin/python3.4
dans la ligne de commande, j'obtiens 3.4.0, et en exécutant /usr/local/bin/python3.4
me donne 3.4.1
Mes pronoms sont Il / Lui
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.