2016-10-27 3 views
1

python에서 프로그래밍 방식으로 내 시스템 경로에 추가 할 수 있습니까? 나는 sys.path.append을 알고 있고 문서를 검색했지만 약간 혼란 스럽습니다. sys.path.append은 실제 시스템 경로가 아닌 PYTHONPATH에만 추가됩니다. 프로그래밍 방식으로 시스템 경로에 임시로 추가 할 수있는 방법이 있습니까? 프로그램은 다른 도구를 호출 할 때 그들이 사용하는 별도의 환경을 유지하는프로그래밍 방식으로 시스템 경로에 추가하는 방법은 무엇입니까?

old_path = os.environ['PATH'] 
try: 
    os.environ['PATH'] = "{}{}{}".format('/my/new/path', os.pathsep, old_path) 
finally: 
    os.environ['PATH'] = old_path 

또는, 그 공통 :

답변

2

그냥 환경을 PATH 변수를 업데이트합니다.

env = os.environ.copy() 
env['PATH'] = "{}{}{}".format('/my/new/path', os.pathsep, env['PATH']) 
# change other env here... 
subprocess.check_call(['my', 'tool'], env=env) 
+0

완벽하게 작동하므로'sys.append.path'는'PYTHONPATH' 자체 만 수행한다는 것을 수정합니까? – Pyth0nicPenguin

+0

@ Pyth0nicPenguin 우선''sys.path' (https://docs.python.org/3/library/sys.html#sys.path) ('.append')이고'yes '만이'PYTHONPATH'입니다 . – xZise

+0

@ Pyth0nicPenguin - 아주. 'sys.path.append'는 실행중인 프로그램에 대해서만 모듈 검색 경로에 추가합니다. 다른 프로그램을 실행하면 원래 환경에서'PYTHONPATH' 만 볼 수 있습니다. 그리고 나는 가져 오기가 아니라 자식 프로세스로 실행하는 것을 의미합니다. 다른 파이썬 스크립트를 실행하여 다른 경로를 보길 원한다면'PYTHONPATH'를 사용하여 같은'os.environ' 게임을 플레이해야합니다. – tdelaney

관련 문제