Вы можете использовать python -V
(и др.), Чтобы показать вам версию Python, к которой относится python
команда. Если это все, что вам нужно, все готово. Но чтобы увидеть каждую версию python в вашей системе, нужно немного больше.
В Ubuntu мы можем проверить разрешение с помощью readlink -f $(which python)
. В случаях по умолчанию в 14.04 это будет просто указывать /usr/bin/python2.7
.
Мы можем связать это, чтобы показать версию этой версии Python:
$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/usr/bin/python2.7: Python 2.7.6
Но это все еще только говорит нам, каково наше текущее python
решение. Если бы мы работали в Virtualenv (общая система управления стеками Python), мы python
могли бы перейти на другую версию:
$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4
Это реальный результат.
Дело в том, что вокруг вашей системы могут быть скрыты сотни различных версий Python, либо по путям, которые добавлены в контекст, либо живут под разными двоичными именами (например python3
).
Если мы предполагаем, что двоичный файл Python всегда будет вызываться python<something>
и будет двоичным файлом, мы можем просто выполнить поиск по всей системе файлов, соответствующих этим критериям:
$ 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
Это, очевидно, довольно отвратительная команда, но это опять-таки реальный результат, и, похоже, он проделал довольно тщательную работу.
ls /usr/bin | grep python