2011-01-03 2 views
1

모두 최근에 PYTHONSTARTUP 환경 변수를 발견했으며 자동으로 인터프리터에로드 할 수있는 여러 가지 유틸리티 함수를 설정할 것을 고대하고 있습니다. 그러나 내가 할 수있는 한 가지는 환경 변수 자체를 설정하는 데 동일한 스크립트를 사용하는 것입니다.PYTHONSTARTUP을 사용하여 파이썬 파일을로드 할 때 대 스크립트로 실행하는 것을 알 수있는 방법이 있습니까?

내 문제는 파일을 스크립트로 실행할 때 결정됩니다. 내 생각은 if __name__ == "__main__": 트릭을 사용하여 파일이 스크립트로 실행 된시기를 확인했지만 테스트 결과 파일이 PYTHONSTARTUP을 통해로드 될 때 이름이 "__main__"으로 표시된다는 것을 보여주었습니다.

파일이 스크립트로 실행되는시기와 PYTHONSTARTUP을 통해로드되는시기를 식별하는 방법을 알고있는 사람이 있습니까?

+0

'PYTHONSTARTUP'은'sys.path' 변수를 수정하기 만하면로드 된 파일을 수정하지 않습니다. – ismail

+0

@Ismail : 아니요, 실제로 지정된 파일을 실행합니다. –

+0

맞아요, 대신에 _PYTHONPATH_에 대해 생각하고 있었는데, oooops : -/ – ismail

답변

1

더 나은 솔루션을 찾을 수 파일이 스크립트로 열렸습니다.

3

PYTHONSTARTUP 환경 변수가 현재 파일 이름 (__file__ 통해)으로 설정되어 있는지 확인할 수 있습니다.

import os 
if os.environ.get('PYTHONSTARTUP') == __file__: 
    print "Used as startup!" 

저에게 잘 맞았습니다. 파일의 이름 argv[0]이 경우에만 사실 인의 __file__ 같은 경우 [] 우리가 확인 항상 ARGV의 첫 번째 인자이기 때문에, 기본적으로

if sys.argv[0] == __file__: 
    print "It works!" 

:

+0

고마워, 그게 내가 필요한 것에 효과가있어. 나는 뭔가 깨끗한 것을 찾고있는 것 같아. 이 명령문은 PYTHONSTARTUP 환경 변수가 현재 파일을 가리키는 한 스크립트로 실행될 때에도 True입니다. – mklauber

+0

아, 네가 맞아, 시작될 때 실행되는지 여부를 실제로 확인하지 않고, 이미 설정되었는지 만 확인한다. –

+0

내가 궁극적으로 원했던 것은 무엇입니까, 감사합니다. – mklauber

관련 문제