Puede usar python -V
(et al.) Para mostrarle la versión de Python a la que se python
resuelve el comando. Si eso es todo lo que necesita, ya está. Pero para ver cada versión de Python en su sistema se necesita un poco más.
En Ubuntu podemos verificar la resolución con readlink -f $(which python)
. En casos predeterminados en 14.04 esto simplemente apuntará a /usr/bin/python2.7
.
Podemos encadenar esto para mostrar la versión de esa versión de Python:
$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/usr/bin/python2.7: Python 2.7.6
Pero esto todavía solo nos dice cuál es nuestra python
resolución actual . Si estuviéramos en un Virtualenv (un sistema común de gestión de pila de Python) python
podría resolver a una versión diferente:
$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4
Esta es la salida real.
El hecho es que podría haber cientos de versiones diferentes de Python secretadas alrededor de su sistema, ya sea en rutas que se agregan contextualmente o que viven bajo diferentes nombres binarios (como python3
).
Si suponemos que un binario de Python siempre se llamará python<something>
y será un archivo binario, simplemente podemos buscar en todo el sistema archivos que coincidan con esos criterios:
$ 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
Obviamente, es un comando bastante horrible, pero nuevamente es un resultado real y parece haber hecho un trabajo bastante completo.
ls /usr/bin | grep python