2011-05-14 6 views
1

sys.path에 저장되지 않은 디렉토리에서 스크립트를 가져 오는 데 어려움이 있습니다. "development"라는 디렉토리에 test.py라는 이름으로 저장 한 스크립트가 있고 index.py라는 현재 스크립트에서 함수를 가져올 수 있도록 sys.path에 개발 디렉토리를 추가하려고합니다. 내가 수신하고 오류 여기python의 새로운 sys.path

def printline(): 
    print "I am working" 

된다

import sys 
sys.path.append ('/Users/master/Documents/Development/') 
import test 

printline() 

printline()로 test.py에 정의되어 있습니다 : 여기

는 index.py 내 코드입니다 :

Traceback (most recent call last): 
    File "/Users/master/Documents/index.py", line 6, in <module> 
    printline() 
NameError: name 'printline' is not defined 

어떻게 작동시킬 수 있습니까?

감사합니다.

답변

3
  1. , 당신은 정의 된 함수가 자신의 네임 스페이스로 가져, 당신은 그것을 참조해야하므로 test.printline().

  2. test은 파이썬 경로의 다른 모듈의 이름 일 수 있으며, 삽입 한 디렉토리가 경로에 추가되므로 test을 찾을 수없는 경우에만 고려됩니다. 대신 sys.path의 머리에 경로를 삽입하십시오 : 당신이 당신의 스크립트가 미래에 침입하지 않으려면

    sys.path.insert(0, "...") 
    
  3. 바닐라 파이썬에서

, 범인 # 1을 가능성이 있지만, 당신은 또한해야 # 2 번 익숙해지기.

1
from test import println 

println() 

하거나 테스트 모듈 객체를 통해에 println 호출 할 수 있습니다 : 당신이 import test을 할 경우

test.println() 
1

from printline import printline을 사용하십시오.