モジュール

関数をいくつか定義して他から利用できるようにしたファイルをモジュールという。あるモジュールが上位モジュール(パッケージ)に含まれていることがあり、さらにパッケージ自体も上位パッケージがありえる。


モジュール

関数をいくつか定義して他から利用できるようにしたファイルをモジュールという。Pythonに付属している標準ライブラリのモジュールはすぐに利用できる。その他、外部ライブラリを利用したり、モジュールの自作もできる。


モジュールの関数呼び出し

import文

モジュールの関数呼び出しは、まずファイルの冒頭などにおいて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() # こんにちは

__pycache__

モジュールをimportして実際に実行すると、モジュールのあるディレクトリに__pycache__というディレクトリができる。この中にはモジュールをコンパイルしたファイルが読み込みを高速化するためにキャッシュされる。


モジュールとして認識できる場所

モジュールとして認識できる場所(モジュール検索パス)は、sys.pathという変数にリストされている。リストの先頭は「実行したプログラムファイルのあるディレクトリ」になる。

import sys
print(sys.path)

検索パス・リストの2番目に独自のパスを挿入したい場合は、シェル(Bash)の環境変数PYTHONPATH:区切りで定義する(そのシェルから実行した場合だけ有効)。

export PYTHONPATH=/path/to/ディレクトリ1:/path/to/ディレクトリ2

上記の他、sys.pathリストを直接変更でも。