2012-04-22 5 views

답변

25

모든 발생 디렉토리가 파이썬 패키지 경우, 그들은 모두 __init__.py 포함 즉, 당신은 당신이 sys.path로 장난하여이 작업을 수행 할 수 있습니다,

from ..bar_dir import bar 

을 사용할 수 있습니다, 그러나 당신은해서는 안됩니다.

+0

가 아닌 패키지로 가져올 경우이 작동하지 않습니다와 당신은 단지 형제로부터 파이썬을 실행합니다. 이 경우에 sys.path.append가가는 길 – mhstnsc

+1

@mhstnsc 나는이 경우에 당신이 잘못한 것을 말하고 싶지만, 단지 해킹 된 스크립트라면'sys.path'로 엉망진창 일 수도 있습니다. –

+0

그 잘못은 아니지만 메인 모듈을 실행할 때 상대적인 임포트를 할 수 없습니다. https://www.python.org/dev/peps/pep-0366/ – mhstnsc

12

일반화 된 가져 오기에는 sysos 모듈을 사용할 수 있습니다. 라인과 foo.py 시작에서

import sys 
import os 
sys.path.append(os.path.abspath('../bar_dir')) 
import bar