関数、モジュール、パッケージ、ライブラリ

投稿者: | 2022-07-02

目次

関数

  • def function()のこと

モジュール

  • Pythonファイル(.py)を指す。このファイル名がモジュール名になる
  • ただし、モジュールは別のファイルからimportされることを念頭に実装を行う
  • そのため、インタープリターから直接実行される.pyファイル(=アプリケーション)とは違う(→ここがわかりにくい点)
  • シバン行は不要(アプリケーションとしては使用しないため)
モジュールとは
・共通の処理
・他のプログラムから読み出せる
・小さな部品
・モジュールを独立している
・再利用可能、交換可能

パッケージ

  • 複数のモジュールを1つのディレクトリに入れてひとまとまりにしたもの
  • 目的
    • 類似する機能を持ったモジュールはまとめて扱うと便利だから
    • 1つのモジュールにたくさんの関数を含めるとコードが長くなるため
  • __init__.py」ファイルを入れるとパッケージになる
    • python3.3以前はこれがないとパッケージとして認識されなかったらしい。今はそうではない。
    • __init__.pyが最初に実行される(そのパッケージまたはモジュールをimportしたとき)
    • 必要なモジュールをimportするように記述しておけば楽(でも無駄な読み込みをしない)
  • パッケージ名に区切り文字(アンダーバー等)は使わない(モジュールでは使っても良い)
ex)
import matplotlib                ・・・matplotlib:パッケージ
matplotlib.pyplot.plot(x, y, marker='.') ・・・pyplot:モジュール、plot:関数

実際のフォルダ構成
matplotlib:ディレクトリ(パッケージ)
 │
 └ pyplot:pyplot.pyファイル(モジュール)
    └ plot:plot()関数

ライブラリ

  • 他のプログラムから呼び出されることを前提に作成された汎用的なプログラム
  • モジュールである.pyファイルも、パッケージであるmatplotlibも、広い意味ではライブラリになる。
  • 標準ライブラリ(そのまま使える)、外部ライブラリ(DL、importが必要)

モジュールを使いたいとき(自作でも同様)

1. importで読み込む

デメリット

  • 直接、そのモジュールやパッケージを指定しないといけない
  • またはPATHを通さないといけない

だから、パッケージ化して次の2を行えば楽になる

2. pipでインストールする

パッケージ化してpipでインストールすれば、簡単にimportできる

なぜなら、自分のPCのpythonライブラリに追加されたため(初回だけ。あとはimportするだけ)

消したいときは

pip uninstall pkg

パッケージ(ライブラリ)を修正すると、いちいちpipするのか?ちがう

エディタブルモードでインストールすれば、更新が適宜可能

pip install -e

自宅外でインストールしたいときは?

GitHubのリポジトリにライブラリをアップすれば、可能となる。

そういうことか