5

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を使用した場合の違いは何ですか?

4

0 に答える 0