2010-04-07 5 views

답변

337

sys.executable에는 현재 실행중인 Python 인터프리터의 전체 경로가 들어 있습니다. os.environ를 사용하여,

whereis python 
+0

이것은'env -i./script'로 실행되는'/ usr/bin/env python'의 스크립트에서는 작동하지 않습니다. 이 경우 현재 작업 디렉토리를 반환합니다. –

+1

@JohnFreeman : GNU coreutils 8.4 (env) 및 Python 3.4.2가 설치된 GNU/Linux 상자에서이 작업을 시도했습니다. '#!/usr/bin/env python3'은'sys.executable'을 통해 정확한 전체 바이너리 경로를 반환합니다. 아마도 OS 또는 Python 버전이 약간 다르게 동작 할 수도 있습니다. – kevinarpe

+0

파이썬 3에서는 작동하지만 파이썬 2에서는 작동하지 않습니다. –

-1

입니다

import sys 

print(sys.executable) 

whereis 명령을 시도

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

예를

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

경로에 무엇이 있는지 알려주지 만 프로그램이 현재 스크립트를 실행하고 싶다는 뜻은 아닙니다. – vy32

+4

Windows와 같은 일부 운영 체제에서는 이식 할 수 없습니다. – wojtow

+7

질문은 "현재 실행중인 Python 스크립트 내에서?"에 관한 질문이었습니다. 'whereis'는 파이썬 스크립트 안에 없습니다. – guettli

7

그냥 의심 유용성의 다른 방법에 주목 : 지금 documented here

+1

쓸모 없지만 재미있는 :) (아마도 또한 휴대 가능하지 않음) – eudoxos

+1

'_ '은 쉘에 의해 설정된 것 같습니다. 그러나 그것은 설정 될 필요가 없기 때문에 이것은 잘못된 대답을 줄 수 있습니다. – vy32

+0

아나콘다가 설치된 Windows에서는 작동하지 않습니다. –

1

리눅스에서 현재 사용 파이썬을 알아낼 수있는 몇 가지 다른 방법이되고 있습니다 1) which python 명령.

마찬가지로 윈도우에서 시그윈와 2) command -v python 명령 3) type python 명령은 동일한 결과 것이다. 당신은 파이썬 쉘에 이미있는 경우

[email protected] ~ 
$ which python 
/usr/bin/python 

[email protected] ~ 
$ 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 

[email protected] ~ 
$ which python3 
/usr/bin/python3 

[email protected] ~ 
$ command -v python 
/usr/bin/python 

[email protected] ~ 
$ 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' 
>>> 
>>> 
+3

"현재 실행중인 Python 스크립트에서"OP – nodakai

+0

을 작성했습니다. "이미 파이썬 셸에있는"예제에서는 모두 셸에서'python'을 입력하면 파이썬 셸이 시작되었다고 가정합니다. 명시 적으로 다른 경로 (예 :'/ opt/python/2.5/bin/python')로 시작하거나''python3'을 사용하여 파이썬 명령을 실행하면 ** 모두 잘못된 답을 얻었고 ** 가장 비옥 한 방법이 아니라는 것과 관련해서는, 그것은 단지 명백한 잘못입니다. – Anthon

관련 문제