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