导入错误:没有名为的模块
我还是个新手。
问题描述:
在名为 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 文件夹里,使用 Ubuntu 终端:
输入命令:python sfdclogin.py
结果返回了 bar。
但是在我修改了 sfdclogin 文件后,变成了:
from sfdc_bulk.helper import getElemVal
print getElemVal('<?xml version="1.0" encoding="UTF-8"?><foo>bar</foo>', 'foo')
我遇到了以下错误:
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
1 个回答
3
如果这两个文件在同一个文件夹里,可以直接导入。你第一次尝试的方式:
from helper import getElemVal
已经是正确的。为什么要改呢?
除非你想把 sfdc_bulk
当作一个包来处理。那就需要把它加到 PYTHONPATH
里。在Windows系统中,可以这样做:
$ set PYTHONPATH=%PYTHONPATH%;C:\your\directory\sfdc_bulk
在Ubuntu系统中使用的话,可以看看 这个回答。