2010-06-24 2 views

답변

128

PYTHONPATH을 설정하지 않은 경우 sys.path에 항목을 추가합니다. Python 패키지를 검색해야하는 디렉토리 목록이므로 디렉토리를 해당 목록에 추가 할 수 있습니다. 사실

sys.path.append('/path/to/whatever') 

, sys.path는 경로 구분 문자 (리눅스와 같은 시스템 : 윈도우에 ;)에 PYTHONPATH의 값을 분할하여 초기화된다.

site.addsitedir을 사용하여 디렉토리를 추가 할 수도 있으며 해당 방법에는 전달한 디렉토리 내에있는 .pth 개의 파일도 포함됩니다. (즉, PYTHONPATH에서 지정한 디렉토리의 경우하지 않을 것입니다.)

+3

이 답변이 게시 된 지 수년이 지났지 만, 가져 오기 할 때 파이썬이 다른 모든 디렉토리보다 먼저 새로운 디렉토리를 확인하는지 확인하려면 계속 추가하고 싶습니다. 'sys.path.insert (0, '/ path/to/whatever')'와 같이. – wecsam

25

당신은 os.environ를 통해 얻을 및 설정 환경 변수 수 있습니다

import os 
user_home = os.environ["HOME"] 

os.environ["PYTHONPATH"] = "..." 

하지만 당신의 인터프리터가 이미 실행 이후

, 이것은 아무런 영향을주지 않습니다. 당신의 당신의 PYTHONPATH가 인터프리터 시작시로 변환 될 배열입니다

import sys 
sys.path.append("...") 

를 사용하여 더 낫다.

4

PYTHONPATH는 sys.path으로 끝나며 런타임에 수정할 수 있습니다. 당신이 이미 추가되어 있는지 확인하지 않고 sys.path.append('dir/to/path')을 넣으면

, 당신은 sys.path의 긴 목록을 생성 할 수있다 : 질문을 다시,하지만 난 그것을 누군가가 도움을 줄 수 있다는 생각에 대한

import sys 
sys.path += ["whatever"] 
+0

@DavidZ의 답변보다이 답변을 선호하는 이유가 있습니까? – Dror

9

죄송합니다. 이를 위해 다음을 권합니다.

import sys 
import os # if you want this directory 

try: 
    sys.path.index('/dir/path') # Or os.getcwd() for this directory 
except ValueError: 
    sys.path.append('/dir/path') # Or os.getcwd() for this directory 

누군가가 질문을 다시 열어 화를 냈다면 미안합니다.

+0

니스. 매우 Pythonic. – PartialOrder

0

PYTHONPATHos.environ['PATHPYTHON']=/some/path으로 설정하면 으로 전화하여 새로 추가 된 경로를 효과적으로 만들 수 있습니다.