Какая версия Python у меня есть?

Как я могу узнать, какие версии Python у меня есть?

Я использую Ubuntu 14.04 (Надежный Tahr).

Вы можете использовать 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

Очевидно, что это довольно отвратительная команда, но это снова реальный результат, и, похоже, она проделала довольно тщательную работу.

Введите следующее в терминале (Ctrl+Alt+T):

python -V

или

python --version

Вы можете найти список опций / параметров для многих команд в терминале, введя команду, за которой следует -- помогите

Пример:

python --help

Руководство / справочные страницы также доступны для большинства таких CLI, которые могут отображаться с помощью man <command> (Из: man python)

От man python:

COMMAND LINE OPTIONS        -V ,  --version              Prints the Python version number of the executable and exits.

Существует также python3 установлен на многих машинах, так что вы можете сделать:

python3 --version

чтобы узнать, какой python 3.x вы используете.

python --version

и

python2 --version

показать версию Python 2.x,

python3 --version

установленная версия Python 3.x

Когда ты бежишь python в терминале он выдаст вывод, подобный этому:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> 

Видите первую строку - Python 2.7.6.

Также запускайте python3. У меня есть 3.4.1

Python 3.4.1 (default, Jul 31 2014, 12:46:17) [GCC 4.8.2] on linuxType "help", "copyright", "credits" or "license" for more information.>>>

Однако это не покажет вам их все. Если у вас есть 2 или более версий python 3.X.x, вы увидите только последнюю версию.

По умолчанию на 14.04 у вас есть 2.7.6 и 3.4.0. Как вы можете видеть, я обновился до 3.4.1. Я знаю, что у меня все еще есть 3.4.0, потому что, когда я перехожу к /usr/bin Я вижу python3.4, и если я побегу /usr/bin/python3.4 в командной строке я получаю 3.4.0 и запускаю /usr/local/bin/python3.4 дает мне 3.4.1

Мои местоимения - Он / Его

Если вы хотите, чтобы все версии Python были доступны в виде команд, запустите compgen -c python. Например:

$ compgen -c python | sort -upythonpython2python2.7python3python3.4python3.4mpython3m

Если вы хотите получить версию каждого из вышеперечисленных:

compgen -c python | sort -u | grep -v -- '-config$' | while read -r p; do     printf "%-14s  " "$p"     "$p" --versiondone
python         Python 2.7.6python2        Python 2.7.6python2.7      Python 2.7.6python3        Python 3.4.3python3.4      Python 3.4.3python3.4m     Python 3.4.3python3m       Python 3.4.3

Примечание: Я отфильтровываю python*-config программы с grep -v поскольку они не поддерживают --version флаг. Например:

$ python3-config --versionUsage: /usr/bin/python3-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir

Вы также можете проверить версию Python из самого кода, используя platform модуль из стандартной библиотеки. Есть две функции: platform.python_version() (возвращает строку) и platform.python_version_tuple() (возвращает кортеж). Скрипт:

import platformprint(platform.python_version())print(platform.python_version_tuple())

Бегущий:

$ python test.py 3.4.1('3', '4', '1')$ python2.7 test.py 2.7.8('2', '7', '8')

Легко откройте терминал и выполните следующие действия:

Писать

python

чтобы проверить вашу версию 2.x в моем случае, появится:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2Type "help", "copyright", "credits" or "license" for more information.

Для 3.x напишите:

python3

В моем случае это выглядит:

Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linuxType "help", "copyright", "credits" or "license" for more information.

В обоих случаях, чтобы выйти из оболочки Python, напишите:

 exit()
  • В терминале оболочки

    $ which -a python перечисляет все ваши python.

    $ which -a python2.7 перечисляет все ваши python2.7.

    $ /usr/bin/python -V предоставляет информацию о версии /usr/bin/python.

  • проверка в скрипте python

вот иллюстрация в оболочке ipython:

In [1]: import sysIn [2]: sys.version2.7.11 |Anaconda 2.5.0 (64-bit)| (default, Dec  6 2015, 18:08:32) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]In [3]: sys.version_infosys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)In [4]: sys.version_info >= (2,7)Out[4]: TrueIn [5]: sys.version_info >= (3,)Out[5]: False

Кроме того, быстрый способ узнать, какие двоичные файлы python установлены: ls /usr /bin | grep python

@TejasKale Лучше запустить ls /usr/bin/python* (или ls /usr/bin /*python*, если вы * действительно * хотите файлы с python * в любом месте * в названии). Таким образом, ls по-прежнему форматирует свои выходные данные для терминала (и вы получаете несколько столбцов и, с псевдонимом ls по умолчанию в Ubuntu, раскрашивание).