関数をいくつか定義して他から利用できるようにしたファイルをモジュールという。あるモジュールが上位モジュール(パッケージ)に含まれていることがあり、さらにパッケージ自体も上位パッケージがありえる。
関数をいくつか定義して他から利用できるようにしたファイルをモジュールという。Pythonに付属している標準ライブラリのモジュールはすぐに利用できる。その他、外部ライブラリを利用したり、モジュールの自作もできる。
モジュールの関数呼び出しは、まずファイルの冒頭などにおいてimport
文でモジュール名を指定しておき、実際に呼び出すところではモジュール名.関数名()
のようにする。
import モジュール名
モジュール名.関数名(引数)
例えば、標準ライブラリのmath
モジュール(数学関連)のsqrt
関数(平方根を求める)なら、
import math
print(math.sqrt(100)) # 10.0(100の平方根)
組み込み関数はbuiltins
モジュールに属していて、import
文やモジュール名の付加を省略でき、単に関数名()
とするだけで呼び出せる。
自作するモジュールのファイル拡張子は.py
にする。モジュールの利用側はimport
文で拡張子を除いたファイル名を指定する。
例えば下記のようなモジュール(ファイル名「挨拶.py」)を作り、
# 挨拶.py
def hello():
print('こんにちは')
それと同じディレクトリにプログラムを作って、
# プログラム.py
import 挨拶
挨拶.hello() # こんにちは
モジュールをimport
して実際に実行すると、モジュールのあるディレクトリに__pycache__
というディレクトリができる。この中にはモジュールをコンパイルしたファイルが読み込みを高速化するためにキャッシュされる。
モジュールとして認識できる場所(モジュール検索パス)は、sys.path
という変数にリストされている。リストの先頭は「実行したプログラムファイルのあるディレクトリ」になる。
import sys
print(sys.path)
検索パス・リストの2番目に独自のパスを挿入したい場合は、シェル(Bash)の環境変数PYTHONPATH
に:
区切りで定義する(そのシェルから実行した場合だけ有効)。
export PYTHONPATH=/path/to/ディレクトリ1:/path/to/ディレクトリ2
上記の他、sys.path
のリストを直接変更でも。