2014-06-21 3 views
0

나는 초보자입니다.ImportError : No module

문제 문 :

디렉토리 sfdc_bulk에서

내가 가지고있는이 파일 1) helper.py 2) sfdclogin.py

helper.py

import xml.dom.minidom as DOM 


def getElemVal(xmlString,elemName): 
    #tree = ET.parse('test.xml') 
    #print tree 
    dom = DOM.parseString(xmlString) 
    val=dom.getElementsByTagName(elemName) 
    ret=None 
    if len(val) >0 : 
     ret=val[0].toxml() 
     #.replace('<' + ret + '>', '').replace('</' + ret + '>', '') 
     ret=ret.replace('<' +elemName+ '>','').replace('</' + elemName + '>', '') 
    return ret 

sfdclogin.py

from helper import getElemVal 

print getElemVal('<?xml version="1.0" encoding="UTF-8"?><foo>bar</foo>', 'foo') 

디렉토리 안에 sfdc_bulk 사용하여 우분투 터미널 :

파이썬 sfdclogin.py는

이 줄을

을 반환하지만

from sfdc_bulk.helper import getElemVal 

print getElemVal('<?xml version="1.0" encoding="UTF-8"?><foo>bar</foo>', 'foo') 

에 sfdclogin 파일을 수정 한 후에 나는 follwing을 오류가 점점 오전 :

Traceback (most recent call last): 
    File "sfdclogin.py", line 2, in <module> 
    from sfdc_bulk.helper import getElemVal 
ImportError: No module named sfdc_bulk.helper 
+2

'sfdc_bulk' 디렉토리는 파이썬 경로에 있습니까? 그것은'__init __. py'를 가지고 있습니까? – BrenBarn

+0

예, 빈 __init__.py가 있습니다. – asitm9

+1

'init.py'가 아니라'__init __. py '이어야합니다. –

답변

2

두 파일이 같은 디렉토리에 있으면 imp 직접 구술하십시오. 첫 번째 시도 :

from helper import getElemVal 

이미 맞습니다. 왜 그것을 바꿀까요?

sfdc_bulk을 패키지로 취급하고 싶지 않은 경우. PYTHONPATH에 포함 시키십시오. 우분투에서 사용하기 위해, this answer을 확인

$ set PYTHONPATH=%PYTHONPATH%;C:\your\directory\sfdc_bulk 

: 같은 윈도우에서는이 될 것입니다.

+0

두 디렉토리 모두 같은 디렉토리에 있으면 문제가 없습니다. 하지만 다른 디렉토리에서 가져 오려면 어떻게해야합니까 ?? 이 접근 방식이 작동하지 않는 이유는 무엇입니까 ?? – asitm9

+0

패키지로 취급 하시겠습니까 ?? ?? – asitm9

+0

즉, 다른 디렉토리에서 가져 오기를 원합니다. – aIKid