답변:
sys.executable 현재 실행중인 Python 인터프리터의 전체 경로를 포함합니다.
import sys
print(sys.executable)
#!/usr/bin/env python3를 통해 올바른 전체 바이너리 경로를 반환합니다 sys.executable. 아마도 OS 또는 Python 버전이 약간 다르게 작동합니다.
pythonand python3명령으로 스크립트를 호출 했으며 올바른 실행 파일을 인쇄했습니다.
다음을 사용하여 의심스러운 유용성의 다른 방법에 주목하십시오 os.environ.
import os
python_executable_path = os.environ['_']
예 :
$ python -c "import os; print(os.environ['_'])"
/usr/bin/python
_껍질에 의해 설정된 것 같습니다 . 그러나 설정할 필요가 없으므로 잘못된 답변을 줄 수 있습니다.
리눅스에서 현재 사용되는 파이썬을 알아내는 몇 가지 다른 방법이 있습니다 : 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'
>>>
>>>
python하면 셸에서 입력하면 얻을 수있는 것 입니다. 명시 적으로 다른 경로 (예 :)로 시작 /opt/python/2.5/bin/python하거나 python3해당 python 명령을 사용한 다음 실행하면 모두 잘못된 답변을 생성 했으며 가장 파이썬적인 방식이 아닌 것과는 아무런 관련이 없습니다.
/usr/bin/env python실행 된 shebang이있는 스크립트에서는 작동하지 않는 것 같습니다env -i ./script. 이 경우 현재 작업 디렉토리를 반환합니다.