답변:
sys.executable
현재 실행중인 Python 인터프리터의 전체 경로를 포함합니다.
import sys
print(sys.executable)
#!/usr/bin/env python3
를 통해 올바른 전체 바이너리 경로를 반환합니다 sys.executable
. 아마도 OS 또는 Python 버전이 약간 다르게 작동합니다.
python
and 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
. 이 경우 현재 작업 디렉토리를 반환합니다.