__import__ vs imp.load_module

时间:2013-05-27 14:51:01

标签: python-2.7 import ironpython

尝试使用ironpython安装autopep8时遇到错误:

ImportError: No module named logilab

失败的代码段是:

def load_module(self, fullname):
    self._reopen()
    try:
        mod = imp.load_module(fullname, self.file, self.filename, self.etc)
    finally:
        if self.file:
            self.file.close()
    # Note: we don't set __loader__ because we want the module to look
    # normal; i.e. this is just a wrapper for standard import machinery
    return mod

使用解释器ipy64导入logilab并没有失败。 我为文件名添加了一个print语句,它显示:

C:\Program Files (x86)\IronPython 2.7\Lib\site-packages\logilab_common-0.59.1-py2.7.egg\logilab

路径存在且包含 init .py,其中包含以下内容:

"""generated file, don't modify or your data will be lost"""
try:
    __import__('pkg_resources').declare_namespace(__name__)
except ImportError:
    pass

我通过添加

来快速修复错误
except ImportError:
    mod = __import__(fullname)

但由于我不知道可能产生的影响,我对此修复感觉不太好。

现在,为什么使用imp.load_module会失败,使用 import 会有什么不同?

0 个答案:

没有答案