Pythonの基礎知識(基礎編)

【Pythonの基礎知識】モジュールとライブラリを使う方法

Pythonでは標準機能だけでは足りない場面が多々あります。モジュールやライブラリを使うことで、外部機能を簡単に取り込み、コードの効率や保守性を飛躍的に向上させることが可能です。

モジュールとライブラリの違いとは?

Pythonでは「モジュール」と「ライブラリ」が頻出しますが、その意味や役割には明確な違いがあります。

モジュールは「.pyファイル」単位の機能集

モジュールとは、機能をまとめた Python のファイル(拡張子 .py)です。関数やクラスを定義しておき、他のファイルから再利用するための単位です。

sample_module.py
    def greet(name):
        return f"Hello, {name}!"

main.py
    import sample_module
    print(sample_module.greet("Alice"))

出力: Hello, Alice!

ライブラリは複数モジュールを束ねた集合体

ライブラリとは、複数のモジュールをまとめた機能の集合体です。Pythonには豊富な標準ライブラリがあり、外部の有名ライブラリも数多く存在します。

例:NumPyライブラリは、複数のモジュールによって数値計算や行列操作が可能になります。

Python標準ライブラリと外部ライブラリの違い

Pythonにあらかじめ含まれているのが「標準ライブラリ」、pipなどで追加インストールが必要なのが「外部ライブラリ」です。

種類特徴
標準ライブラリmath, datetime, osインストール不要、すぐ使える
外部ライブラリrequests, pandas, numpypipでインストールが必要

JavaとPythonにおけるライブラリの役割比較

Pythonの「モジュール」や「ライブラリ」は、JavaにおけるクラスやJARファイルと非常に似た役割を持ちます。ただし、インタプリタ型とコンパイル型という違いがあるため、構成ファイルや管理方法には差があります。

項目PythonJava
単体ファイルの再利用.pyファイル(モジュール).classファイル
複数機能の集合体ライブラリ(複数モジュール)JARファイル(複数クラス)
パッケージ管理ツールpip、requirements.txtMaven、Gradle
標準ライブラリmath、os、sys などjava.util、java.io など
外部ライブラリの導入方法pip install ライブラリ名JARをクラスパス追加 or Maven/Gradleで依存指定

Pythonの外部ライブラリ(例:NumPy、Pandasなど)は、Javaで言うところのJARファイルにあたると考えてよいでしょう。違いとしては、Pythonはスクリプト言語なので.pyファイルがそのまま流通し、Javaはコンパイルされたバイトコード(.class)がJARに格納される点です。

import構文の基本と応用パターン

モジュールやライブラリを使用するための基本が import文です。この構文には複数の書き方があります。

基本のimportとasによる別名指定

通常はモジュール名をそのままimportしますが、名前が長い場合は asで短縮できます。

import math
print(math.sqrt(16))
# 出力: 4.0

import numpy as np
print(np.array([1, 2, 3]))
# 出力: [1 2 3]

from ... importによる要素の直接指定

特定の関数やクラスのみ使いたい場合は、 from モジュール import 要素を使用します。

from math import pi, sin
print(pi)
print(sin(0))
# 出力: 3.141592653589793
# 出力: 0.0

import時のディレクトリ構成と相対パス

プロジェクトが大きくなると、複数のファイルやフォルダを扱う必要があります。 importはその構成に影響を受けます。

from . import utils
from ..common import logger

※相対パスによるimportはパッケージ内の構造を意識する必要があります。

標準ライブラリでよく使う機能集

Pythonには最初からインストールされている便利な標準ライブラリが数多くあります。ここではその代表例を紹介します。

osでファイルパスや環境情報を取得

ファイル操作やディレクトリ構成を扱う際によく使われるのが osライブラリです。

import os
print(os.getcwd())
print(os.path.exists("sample.txt"))

出力結果:

コンソール

/home/user/project
False

補足:pwdとgetcwdの違いに注意

「カレントディレクトリを取得する」と聞くと、Linuxなどのシェルコマンドで使われる pwdを連想するかもしれませんが、Pythonでは os.getcwd()が正しい関数です。

用語使用環境説明
pwdBash / Linux コマンドカレントディレクトリを表示(print working directory)
os.getcwd()Pythonカレントディレクトリを文字列で返す(get current working directory)

Pythonには pwdという関数は存在しません。あくまで os.getcwd()を使うのが正解です。Shellの知識がある人ほど混同しやすいため、注意が必要です。

import os
print(os.getcwd())

出力例:

コンソール

/home/user/myproject

datetimeで日付・時間の操作

現在時刻の取得や、日付の加算・差分を計算する場合に datetimeが活躍します。

from datetime import datetime, timedelta
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))
print((now + timedelta(days=7)).strftime("%Y-%m-%d %H:%M:%S"))

出力結果:

コンソール

2025-04-09 14:23:00
2025-04-16 14:23:00

補足:datetimeもimportが必要

Pythonの標準ライブラリは、すべて明示的な importが必要です。 datetimeも例外ではありません。

以下のように、 import datetimeを行わなければ使えません。

import datetime
print(datetime.datetime.now())

出力例:

コンソール

2025-04-09 10:15:30.123456

もし次のように書きたい場合:

from datetime import datetime
print(datetime.now())

この場合は datetimeモジュールの中から、 datetimeクラスだけを取り出して使っています。

標準ライブラリであっても、 osdatetimerandomなどはすべて import文が必要であることを忘れないようにしましょう。

【補足】datetimeのインポートが省略されているように見える理由

前出のようなコードを見ると、一見「datetimeをインポートしていない」ように感じるかもしれません。

from datetime import datetime, timedelta
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))
print((now + timedelta(days=7)).strftime("%Y-%m-%d %H:%M:%S"))

しかし、これは datetime モジュールの中にある datetime クラスと timedelta クラスを直接インポートしている構文です。
通常の import datetime のようにモジュール全体を読み込んでいるのではなく、クラス単位で明示的に読み込んでいます。

インポート方法使い方
import datetime datetime.datetime.now()
from datetime import datetime datetime.now()

同じ名前の構造が重なっているため、インポートが省略されたように見えるだけで、実際にはしっかりとクラスを指定して読み込んでいます

randomで乱数を生成する方法

ランダムな値を生成する場面では randomライブラリを使います。

import random
print(random.randint(1, 10))
print(random.choice(["apple", "banana", "cherry"]))

出力結果:

コンソール

7
banana

外部ライブラリの導入と管理方法

標準ライブラリでは対応できない場面では、外部ライブラリを導入します。Pythonではpipを使った簡単な導入が可能です。

pip installでライブラリを導入する

外部ライブラリのインストールには、Pythonに標準で付属する「pip」を使用します。

pip install requests

上記のコマンドを実行すると、「requests」というライブラリがインストールされ、次のように使用できます。

import requests
res = requests.get("https://example.com")
print(res.status_code)

出力結果:

コンソール

200

補足:pipとは、Pythonに標準で付属しているパッケージ管理ツールです。外部ライブラリをインストール・アンインストール・更新する際に使用されます。

操作コマンド例説明
インストール

pip install ライブラリ名

指定したライブラリを新しく導入する
アンインストール

pip uninstall ライブラリ名

ライブラリを削除する
一覧表示

pip list

現在インストールされているライブラリを確認する
詳細確認

pip show ライブラリ名

特定ライブラリのバージョンや依存関係などを表示
更新

pip install --upgrade ライブラリ名

指定したライブラリを最新バージョンにアップデート

仮想環境(venv)の重要性と基本操作

仮想環境を使うことで、プロジェクトごとに依存ライブラリのバージョンを分けて管理できます。

python -m venv venv
source venv/bin/activate (Mac/Linux)
venv\\Scripts\\activate (Windows)

仮想環境を有効化した状態でpip installを行えば、プロジェクト内にのみライブラリがインストールされます。

仮想環境を使う最大の利点とは?

    仮想環境を使うことで、ライブラリのインストール先をプロジェクトフォルダ内に限定できます。これにより、システム全体(グローバル環境)を汚すことなく、プロジェクトごとに必要なライブラリを独立して管理できます。

    たとえば、あるプロジェクトでは古いバージョンのライブラリが必要で、別のプロジェクトでは最新のものが必要な場合でも、仮想環境を使えばそれぞれに適した状態で共存させることができます。

    仮想環境を作らずにインストールを繰り返すと、Pythonの環境が壊れたり、意図しないバージョン競合が発生する原因となるため、実務でも仮想環境の使用はほぼ必須とされています。

requirements.txtで環境を再現する

現在の環境にインストールされたパッケージ一覧を、ファイルに出力しておくことで、同じ環境を別のPCやチームメンバーと共有できます。

pip freeze > requirements.txt

共有先では、次のコマンドで一括インストールが可能です。

pip install -r requirements.txt

この運用により、環境構築ミスを防ぎ、再現性のある開発が可能になります。

よく使われる外部ライブラリの紹介

    Pythonの魅力のひとつは、豊富な外部ライブラリに支えられていることです。ここでは実務や学習でよく使われるライブラリを紹介します。

Web系:requests, Flask など

    Web開発やAPI連携では、以下のようなライブラリが頻繁に使われます。

  • requests:HTTPリクエストを簡潔に送信できるライブラリ
  • Flask:軽量なWebアプリケーションフレームワーク

import requests
response = requests.get("https://example.com")
print(response.status_code)

【出力例】

コンソール

200

データ処理系:pandas, numpy など

    大量のデータを効率的に扱うために使われる、データ分析系ライブラリです。

  • pandas:表形式データ(DataFrame)を操作するためのライブラリ
  • numpy:数値計算を効率化するための配列処理ライブラリ

import pandas as pd
df = pd.DataFrame({"name": ["Alice", "Bob"], "age": [25, 30]})
print(df)

【出力例】

コンソール

    name  age
0  Alice   25
1    Bob   30

機械学習・AI系:scikit-learn, TensorFlow など

    人工知能や機械学習分野で利用されるライブラリです。

  • scikit-learn:分類・回帰・クラスタリングなどの機械学習アルゴリズムを提供
  • TensorFlow:Google製のディープラーニング向けフレームワーク

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit([[1], [2], [3]], [2, 4, 6])
print(model.predict([[4]]))

【出力例】

コンソール

[8.]

ジャンル別の代表的な外部ライブラリ一覧

上記で紹介したもの以外にも、Pythonには優れた外部ライブラリが多数存在します。以下に、ジャンルごとに代表的なライブラリを表形式でまとめました。

ジャンル代表的ライブラリ主な用途
Web開発requests, Flask, FastAPI, DjangoHTTP通信, API, サーバー構築
データ分析pandas, numpy, openpyxl, matplotlib表データ, 数値計算, Excel, グラフ描画
機械学習scikit-learn, xgboost, LightGBM学習モデル構築、予測、評価
ディープラーニングTensorFlow, Keras, PyTorchニューラルネットワーク, 画像・音声認識
WebスクレイピングBeautifulSoup, Selenium, ScrapyHTML解析, 自動操作, クロール
自然言語処理spaCy, nltk, transformers形態素解析, 文書処理, GPTなどの活用
画像処理Pillow, OpenCV画像の変換・加工、認識処理
テストpytest, unittest単体テスト、統合テストの自動化
CLI/自動化argparse, click, typerコマンドラインツール作成

Pythonの真価は「豊富なライブラリをどこまで活用できるか」に集約されます。標準機能だけでも十分ですが、外部ライブラリを駆使することで 数十行の処理が1行で済む ことも珍しくありません。

もし「Pythonが他の言語より楽」と感じられる瞬間があるとすれば、それはこのライブラリ文化によるものです。

自作モジュールの作り方と活用例

他人のライブラリだけでなく、自分でモジュールを作成して再利用することで、コードの再構築性が向上します。

自作モジュールの基本構成とimport方法

モジュールは.pyファイル単位で構成されます。Pythonファイルを別のスクリプトから読み込むことで、再利用が可能です。

# utils.py(自作モジュール)
def greet(name):
    return f"Hello, {name}!"

# main.py(呼び出し側)
import utils
print(utils.greet("Taro"))

【出力結果】

コンソール

Hello, Taro

役割ごとに関数を分割する設計のポイント

1ファイルに多くの処理を詰め込むと、保守が難しくなります。処理の役割ごとにモジュールを分けると、再利用性と可読性が大きく向上します。

# math_utils.py
def add(a, b):
    return a + b

# string_utils.py
def shout(text):
    return text.upper()

このように、数学処理と文字列処理を別モジュールに分けておくことで、必要なものだけをimportでき、メンテナンスも容易になります。

実務における共通関数モジュールの例

共通関数は、ログ出力やファイル読み書き、入力チェックなど、複数のスクリプトで繰り返し使う処理をまとめたモジュールです。

# common.py
import datetime

def log(message):
    now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    print(f"[{now}] {message}")

# 実行例
import common
common.log("処理開始")

【出力結果】

コンソール

[2025-04-09 10:30:00] 処理開始

まとめ|自作モジュールでコードを資産化する

自作モジュールを活用することで、処理の共通化・再利用が可能になり、開発効率と保守性が大幅に向上します。標準ライブラリや外部ライブラリに頼るだけでなく、自分自身の「使い回せる部品」を作ることが、スキルアップへの第一歩です。次回は、Pythonの持つ便利な組み込み関数について整理していきます。

この記事を読んだら、次は「【Pythonの基礎知識】Pythonのクラスとオブジェクトを最初に学ぶ」の使い方に進むのがおすすめです。

よく読まれている記事

1

IT入門シリーズ 🟢 STEP 1: ITの基礎を知る(ITとは何か?) 📌 IT初心者が最初に学ぶべき基本知識。ITの概念、ネットワーク、OS、クラウドの仕組みを学ぶ ...

2

「私たちが日々利用しているスマートフォンやインターネット、そしてスーパーコンピュータやクラウドサービス――これらの多くがLinuxの力で動いていることをご存じですか?無料で使えるだけでなく、高い柔軟性 ...

3

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

-Pythonの基礎知識(基礎編)