尝试使用 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 没有失败。我为文件名添加了一个打印语句,它显示:
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有什么区别?