Ви можете скористатися 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