파이썬 인터프리터의 전체 경로를 찾으십니까?


402

현재 실행중인 Python 스크립트에서 현재 실행중인 Python 인터프리터의 전체 경로를 어떻게 찾을 수 있습니까?

답변:


607

sys.executable 현재 실행중인 Python 인터프리터의 전체 경로를 포함합니다.

import sys

print(sys.executable)

이제 여기에 문서화되어 있습니다


1
이처럼 /usr/bin/env python실행 된 shebang이있는 스크립트에서는 작동하지 않는 것 같습니다 env -i ./script. 이 경우 현재 작업 디렉토리를 반환합니다.
John Freeman

2
@ JohnFreeman : GNU coreutils 8.4 (env) 및 Python 3.4.2가있는 GNU / Linux 상자에서 이것을 시도했습니다. #!/usr/bin/env python3를 통해 올바른 전체 바이너리 경로를 반환합니다 sys.executable. 아마도 OS 또는 Python 버전이 약간 다르게 작동합니다.
kevinarpe

25
파이썬이 일부 응용 프로그램에 포함되어 있으면 파이썬 인터프리터의 이름이 반환되지 않습니다.
mic_e

1
python2 및 python3의 shebang으로 이것을 시도하고 올바른 실행 파일을 인쇄했습니다. 나는 또한 shebang없이 시도하고 pythonand python3명령으로 스크립트를 호출 했으며 올바른 실행 파일을 인쇄했습니다.
David Baucum '10

8

다음을 사용하여 의심스러운 유용성의 다른 방법에 주목하십시오 os.environ.

import os
python_executable_path = os.environ['_']

예 :

$ python -c "import os; print(os.environ['_'])"
/usr/bin/python

2
쓸모 있지만 (휴대용하지 아마도) : 재미
eudoxos

2
그것은 _껍질에 의해 설정된 것 같습니다 . 그러나 설정할 필요가 없으므로 잘못된 답변을 줄 수 있습니다.
vy32

2
참고로 Jupyter 노트북에있을 때 커널 시작 관리자 스크립트의 경로가 제공됩니다.
Mr Fooz

2

리눅스에서 현재 사용되는 파이썬을 알아내는 몇 가지 다른 방법이 있습니다 : 1) which python명령. 2) command -v python명령 3) type python명령

마찬가지로 Cygwin이 설치된 Windows에서도 동일한 결과가 나타납니다.

kuvivek@HOSTNAME ~
$ which python
/usr/bin/python

kuvivek@HOSTNAME ~
$ whereis python
python: /usr/bin/python /usr/bin/python3.4 /usr/lib/python2.7 /usr/lib/python3.4        /usr/include/python2.7 /usr/include/python3.4m /usr/share/man/man1/python.1.gz

kuvivek@HOSTNAME ~
$ which python3
/usr/bin/python3

kuvivek@HOSTNAME ~
$ command -v python
/usr/bin/python

kuvivek@HOSTNAME ~
$ type python
python is hashed (/usr/bin/python)

이미 파이썬 쉘에 있다면. 이 중 누구라도 사용해보십시오. 참고 : 이것은 다른 방법입니다. 최고의 파이 토닉 방식은 아닙니다.

>>>
>>> import os
>>> os.popen('which python').read()
'/usr/bin/python\n'
>>>
>>> os.popen('type python').read()
'python is /usr/bin/python\n'
>>>
>>> os.popen('command -v python').read()
'/usr/bin/python\n'
>>>
>>>

5
"현재 실행중인 Python 스크립트 내에서"OP가 작성되었습니다
nodakai

3
"이미 python shell에있다"예제에서 python shell이 ​​시작되었다고 가정 python하면 셸에서 입력하면 얻을 수있는 것 입니다. 명시 적으로 다른 경로 (예 :)로 시작 /opt/python/2.5/bin/python하거나 python3해당 python 명령을 사용한 다음 실행하면 모두 잘못된 답변을 생성 했으며 가장 파이썬적인 방식이 아닌 것과는 아무런 관련이 없습니다.
Anthon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.