Python PR

【Python】モジュールの格納場所を確認する

記事内に商品プロモーションを含む場合があります

この記事では、Pythonでモジュールの格納場所を確認する方法を解説します。

Pythonでプログラミングしているとモジュールをよく使いますが、モジュールがどこに格納されているか忘れてしまうことが多々あります。

そんな時はinspectモジュールを使ってモジュールの格納場所を確認しましょう!

モジュールの格納場所を確認する方法

それでは、実際にモジュールの格納場所を確認してみましょう!

書式

モジュールの格納場所を確認するには、inspectモジュールのgetfile()メソッドを使います。

import inspect

inspect.getfile(オブジェクト)
引数 オブジェクトを指定する。オブジェクトが組み込みモジュール、クラス、関数の場合は、TypeError例外が発生
戻り値 ファイルの名前(パス)が文字列で返される

サンプル

試しに、numpyモジュールがどこに格納されているか確認してみましょう!

import inspect
import numpy

print(inspect.getfile(numpy))

実行結果

/Users/user/.pyenv/versions/3.9.0/lib/python3.9/site-packages/numpy/__init__.py

僕の環境ではpyenvを使っているのでその中に格納されているのがわかりました。ただし、組み込みモジュールの格納場所を確認しようとするとTypeErrorが送出されます。

import inspect
import sys

print(inspect.getfile(sys))

実行結果

TypeError: <module 'sys' (built-in)> is a built-in module

組み込みモジュールかどうかは、sys.builtin_module_namesで確認できる。

import sys

print(sys.builtin_module_names)

実行結果

('_abc', '_ast', '_codecs', '_collections', '_functools', '_imp', '_io', '_locale', '_operator', '_peg_parser', '_signal', '_sre', '_stat', '_string', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', 'atexit', 'builtins', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'posix', 'pwd', 'sys', 'time', 'xxsubtype')

まとめ

この記事では、モジュールの格納場所を確認する方法を解説しました。

inspectモジュールのgetfileメソッドを使うことで簡単にモジュールの格納場所を確認することができました。

格納場所を忘れてしまった場合は、コード内から確認してみてはいかがでしょうか?

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ