[Python 3]特定のライブラリの場所を調べたい時の方法
この投稿は昔の投稿を遡ってまとめ直して書いてるので、実はなんでライブラリの場所を知りたかったのか全然覚えてない・・・。
だから、当時どんな事に困っててこの解決方法に至ったってのを導入として書くことができない(笑)
頑張っておぼろげな記憶を探ってみる。
確か、ライブラリを正しくimportしたはずがメソッドが意図した動作をしないから、もしかしたら同名の違うライブラリを参照してるんではないかと疑って、ライブラリの場所を調べようと思ったんだと思う。確か。
やり方としては、__file__や__path__を使う。
例としてnumpyの場所を調べる。
1 2 3 | import numpy print(numpy.__file__) print(numpy.__path__) |
結果は以下の通り。
__file__と__path__の違いについては、下のサイトによると、モジュールなのか、パッケージなのかっていう違いらしい?
__file__ と __path__ のちがいとしては
- __file__ モジュールの本体か __init__.py の絶対パス
- __path__ パッケージのディレクトリの絶対パス(の配列)
というところになります。
ただ、いろいろなライブラリで試してみたけど、どちらのアトリビュートもエラーになるライブラリとかもあったので、場所知りたい時はとりあえずどちらも試してみるといいんじゃないかな。
ん~、なんかいまいち腑に落ちない感じだけど、またこの知識を実際に使う時になったらどう使い分ければいいかとかも分かるだろうし、その時にまた詳しく書こうかなと思う。
この記事へのコメントはこちら