Puoi usare python -V
(et al.) Per mostrarti la versione di Python che il python
comando risolve. Se è tutto ciò di cui hai bisogno, hai finito. Ma vedere ogni versione di Python nel tuo sistema richiede un po 'di più.
In Ubuntu possiamo verificare la risoluzione con readlink -f $(which python)
. In casi predefiniti in 14.04 questo indicherà semplicemente /usr/bin/python2.7
.
Possiamo concatenarlo per mostrare la versione di quella versione di Python:
$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/usr/bin/python2.7: Python 2.7.6
Ma questo ci dice ancora qual è la nostra attuale python
risoluzione. Se fossimo in un Virtualenv (un comune sistema di gestione dello stack Python) python
potremmo risolvere una versione diversa:
$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4
Questo è un vero output.
Il fatto è che potrebbero esserci centinaia di versioni diverse di Python secrete attorno al tuo sistema, o su percorsi che vengono aggiunti contestualmente o che vivono con nomi binari diversi (come python3
).
Se assumiamo che un binario Python venga sempre chiamato python<something>
e sia un file binario, possiamo semplicemente cercare nell'intero sistema i file che soddisfano tali criteri:
$ 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
È ovviamente un comando piuttosto orribile, ma questo è di nuovo un vero output e sembra aver fatto un lavoro abbastanza approfondito.
ls /usr/bin | grep python