어떤 버전의 Python이 있습니까?


73

어떤 버전의 Python을 찾을 수 있습니까?

우분투 14.04 (Trusty Tahr)를 사용하고 있습니다.


4
파이썬 바이너리가 설치되어 있는지 확인하는 빠른 방법은 다음과 같습니다.ls /usr/bin | grep python
Tejas Kale

1
@TejasKale 더 나은 실행 ls /usr/bin/python*(또는 ls /usr/bin/*python*당신이 경우 실제로 사용하여 파일을 원하는 python 어디서나 이름으로). 이렇게 ls하면 터미널의 출력 형식을 계속 지정할 수 있습니다 ( ls우분투 의 기본 별명 으로 여러 열을 얻음 ).
Eliah Kagan

답변:


86

python -V(et al.)을 사용 하여 python명령이 해결되는 Python 버전을 표시 할 수 있습니다. 그게 전부라면 끝났습니다. 그러나 시스템의 모든 버전의 파이썬을 보는 데 조금 더 걸립니다.

우분투에서는로 해상도를 확인할 수 있습니다 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에 있다면 다른 버전으로 해결할 수 있습니다.

$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4

이것은 실제 출력입니다.

사실 상황에 따라 추가되거나 다른 이진 이름 (예 :)으로 시스템에 숨겨져있는 수백 가지 버전의 Python이 시스템 주위에 숨겨져있을 수 있습니다 python3.

파이썬 바이너리가 항상 호출 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

분명히 꽤 끔찍한 명령이지만 이것은 다시 실제 출력이며 상당히 철저한 작업을 한 것으로 보입니다.


다음과 같은 정보가 표시되며 그 의미가 무엇인지 잘 모르겠습니다. readlink: extra operand '/usr/bin/python2.7' Try 'readlink --help' for more information.
hello_there_andy

나는 python -v버전을 반환하고 루트로 실행 한다고 가정했습니다 . 그것은 긴 것들의 목록을 인쇄했지만 맨 위에 말했고 installing zipimport hook지금은 나가는 방법을 모르는 프로그램에있는 것처럼 보입니다. 당신이 나를 도울 수 있습니까
BugWhisperer

2
@Anthony -Vversion 플래그는 대소 문자를 구분합니다. python -v자세한 메시지가 설정된 Python 콘솔에 넣으십시오. 제어 + D 나가십시오. 또는 쓰고 exit()Return을 누르십시오.
Oli

@hello_there_andy 명령을 복사 할 때 오타가 발생한 것 같습니다.
wjandrea

63

터미널 ( Ctrl+ Alt+ T)에 다음을 입력하십시오 .

python -V

또는

python --version

터미널에서 많은 명령에 대한 옵션 / 매개 변수 목록을 찾을 수 있습니다-명령 다음에 --help

예:

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를 찾으십시오.


2
아래 @Florian Diesch는 여러 버전의 "python"이있을 가능성이 높다는 것을 암시합니다. 기본 "python"호출은 python 2.7 설치를 가리 키지 만, 우분투 14.04는 python 3.0과 함께 제공됩니다.
Mitch

32
python --version

python2 --version

Python 2.x 버전을 보여줍니다.

python3 --version

설치된 Python 3.x 버전


8

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.
>>>

그러나 이것은 당신에게 그들 모두를 보여주지는 않을 것입니다. 둘 이상의 python 3.Xx 버전이있는 경우 최신 버전 만 표시됩니다.

기본적으로 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를 제공합니다

내 대명사는


"파이썬 3.Xx 버전이 2 개 이상인 경우 최신 버전 만 표시됩니다." 대신 PATH환경 변수 에서 가장 먼저 포함 디렉토리를 가진 디렉토리를 표시하지 않습니까? 실행이 python3항상 설치된 python3 의 최고 (하위) 버전을 실행하는 이유는 무엇 입니까? 또는 실제로 /usr/bin/python3심볼릭 링크가 가리키는 버전 중 최신 버전이 아닌 버전은 표시 되지 않습니까?
Eliah Kagan

@ 엘리아 모르지만 일부 프로그램은 거기에서 가져오고 다른 프로그램은 /usr/bin하나 에서 가져옵니다 ...
Tim

2
실제로 그들이 실행 방법에 따라, 파이썬 프로그램을 실행 할 때 음의 hashbang 라인은 인터프리터로하는 파이썬 행위 (결정하는데 사용될 수있다 세부 사항을 유의하십시오; 의 사용 envhashbang 라인에서 찾을 수있는 시스템이 될 수있다 해석 중을 -Python 스크립트 에서 공통적으로 선호 됨 ). 그것이 어떤 프로그램과 다른 프로그램의 차이점에 의해 당신이 무엇을 의미하는지 확실하지 않습니다.
Eliah Kagan

아니요, 사용자는 유휴 상태가 3.4.0으로 실행되고 명령 줄이 3.4.1로 실행되었다고 말했습니다.
Tim

5

platform표준 라이브러리의 모듈을 사용하여 코드 자체에서 Python 버전을 확인할 수도 있습니다. 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')

3
나는 그것을 사용하는 것이 더 일반적인 생각 sys.version이나 sys.version_info.
매트 Nordhoff

5

명령으로 사용 가능한 모든 버전의 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$'

이것이 가장 좋은 대답이어야합니다.
솔로몬 바이 멀

2

터미널을 쉽게 열고 다음을 수행하십시오.

쓰다

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()

1
  • 쉘 터미널에서

    $ which -a python모든을 나열합니다 python.

    $ which -a python2.7모든을 나열합니다 python2.7.

    $ /usr/bin/python -V의 버전에 대한 정보를 제공합니다 /usr/bin/python.

  • 파이썬 스크립트 체크인

다음은 ipython 쉘의 ilustration입니다.

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

나는 python -v버전을 반환하고 루트로 실행 한다고 가정했습니다 . 그것은 긴 것들의 목록을 인쇄했지만 맨 위에 말했고 installing zipimport hook지금은 나가는 방법을 모르는 프로그램에있는 것처럼 보입니다. 당신이 나를 도울 수 있습니까
BugWhisperer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.