2010-05-25 2 views
5

임시로 Python 스크립트를 실행하기 전에 PYTHONPATH 환경 변수를 어떻게 설정합니까?임시 PYTHONPATH (Windows)

* nix에서 스크립트에서, 나는이 작업을 수행 할 수 있습니다 Windows에서는이 구문은 물론, 작동하지 않는

$ PYTHONPATH='.' python scripts/doit.py 

. 그래도 같은 것이 무엇입니까?

답변

8

설정하고 불행하게도 "다소 고문"접근 방식이 필요 윈도우의 명령 행에서 환경 변수를 복원하려면 ... :

SET SAVE=%PYTHONPATH% 
SET PYTHONPATH=. 
python scripts/doit.py 
SET PYTHONPATH=%SAVE% 

당신은 할 수 약간의 보조 파이썬 스크립트를 사용하여 고통을 줄입니다.

import os 
import sys 
import subprocess 

for i, a in enumerate(sys.argv[1:]): 
    if '=' not in a: break 
    name, _, value = a.partition('=') 
    os.environ[name] = value 

sys.exit(subprocess.call(sys.argv[i:])) 

는로 호출 할 수는 에 대한 어떤 하위 프로세스뿐만 아니라 파이썬 스크립트를 작동, 그래서 예를 들면,

python withenv.py PYTHONPATH=. python scripts/doit.py 

는 (나는 그것을 코딩 한 - 당신은 파이썬 스크립트 걱정하는 경우 cal의 두 번째 파이썬을 생략하고 코드에서 sys.argv[i-1]에 'python'을 넣은 다음 sys.argv[i-1:]을 subprocess.call의 인수로 사용하십시오.

+0

흠. 내가 필요한 것보다 조금 더,하지만 고마워! 나는 내일 이것을 시도 할 것이다. – Santa

1

Windows에서 PYTHONPATH를 GUI 프런트 엔드가있는 환경 변수로 설정할 수 있습니다. 대부분의 Windows 버전에서는 내 컴퓨터를 마우스 오른쪽 단추로 클릭하고 속성을 마우스 오른쪽 단추로 클릭하여 시작할 수 있습니다.

1

당신은 Windows에서 SET를 사용

SET PYTHONPATH=. 
python scripts/doit.py 
6

얼마나 일시적입니까? 당신이 Windows 콘솔 (cmd.exe를) 입력을 열면 :

set PYTHONPATH=. 

는 해당 콘솔과 그것에서 생성 된 자식 프로세스에 대한 PYTHONPATH 변경됩니다. 이 콘솔에서 실행되는 모든 파이썬 스크립트는 새로운 PYTHONPATH 값을 사용합니다. 콘솔을 닫으면 변경 사항을 잊어 버릴 수 있습니다.