导入错误:没有名为的模块

0 投票
1 回答
11169 浏览
提问于 2025-04-18 10:35

我还是个新手。

问题描述:

在名为 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系统中使用的话,可以看看 这个回答

撰写回答