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

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

Я использую Ubuntu 14.04 (Trusty Tahr).

73
задан 1 August 2014 в 02:57

8 ответов

Можно использовать 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

Это - очевидно, довольно отвратительная команда, но это - снова реальный вывод, и это, кажется, сделало довольно полное задание.

85
ответ дан 1 August 2014 в 02:57

Введите следующее в терминале ( Ctrl + Высокий звук + 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 Вы выполняете.

63
ответ дан 1 August 2014 в 02:57
python --version

и

python2 --version

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

python3 --version

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

32
ответ дан 1 August 2014 в 02:57

Когда Вы будете работать python в терминале, это произведет вывод как это:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "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 linux
Type "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

8
ответ дан 1 August 2014 в 02:57

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

import platform

print(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')
5
ответ дан 1 August 2014 в 02:57

Легко, откройте терминал и сделайте следующее:

Запись

python

для проверки Вашего 2.x версия В моем случае это появится:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "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 linux
Type "help", "copyright", "credits" or "license" for more information.

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

 exit()
2
ответ дан 1 August 2014 в 02:57
  • В терминале оболочки

    $ which -a python списки все Ваш python.

    $ which -a python2.7 списки все Ваш python2.7.

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

  • регистрация сценария Python

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

In [1]: import sys

In [2]: sys.version
2.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_info
sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)

In [4]: sys.version_info >= (2,7)
Out[4]: True

In [5]: sys.version_info >= (3,)
Out[5]: False
1
ответ дан 1 August 2014 в 02:57

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

$ compgen -c python
python2.7
python3.4m
python3.4
python3m
python
python3
python2

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

$ for p in $(compgen -c python); do printf "%-16s" $p; $p --version; done
python2.7      Python 2.7.6
python3.4m     Python 3.4.3
python3.4      Python 3.4.3
python3m       Python 3.4.3
python         Python 2.7.6
python3        Python 3.4.3
python2        Python 2.7.6

Обновление: python*-config

я заметил, что python*-config программы не поддерживают эти --version флаг. Например:

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

, Таким образом, Вы могли фильтровать их с grep -v, например:

compgen -c python | grep -v -- '-config
4
ответ дан 1 August 2014 в 02:57

Другие вопросы по тегам:

Похожие вопросы: