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


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.