Python Tips: ライブラリ・モジュールの場所を調べたい

Python でライブラリ(モジュールやパッケージ)がどのディレクトリに入ってるのか、その場所を調べる方法についてご紹介します。

ライブラリの場所は、モジュールの __file__ アトリビュートか __path__ アトリビュートで調べることができます。

import datetime
print datetime.__file__
# => datetimeモジュールの場所
import json
print json.__path__
# => jsonパッケージの場所

__file____path__ には次のような違いがあります。

  • __file__: モジュールの本体か __init__.py の絶対パス
  • __path__: パッケージのディレクトリの絶対パス(の配列)

なので、 __file__ はそのライブラリがモジュール(1ファイルのライブラリ)の場合でもパッケージ(複数ファイルのライブラリ)の場合でも動作しますが、 __path__ の方はパッケージの場合限定のアトリビュートとなるようです。

参考