
Pythonでは標準機能だけでは足りない場面が多々あります。モジュールやライブラリを使うことで、外部機能を簡単に取り込み、コードの効率や保守性を飛躍的に向上させることが可能です。
Pythonの基礎
🟣 Pythonの基礎知識(入門編)
📌はじめてでも安心!Pythonで「動く感動」を味わえる超やさしい入門ステップ
🟣Pythonの基礎知識(基礎編)
📌基本文法から実用テクニックまで、Pythonの土台をしっかり固めるステップアップ講座
├─【Pythonの基礎知識】Pythonのデータ型を正しく使いこなす!
├─【Pythonの基礎知識】条件分岐の完全理解(if, elif, else)
├─【Pythonの基礎知識】繰り返し処理の深掘り(for, while)
├─【Pythonの基礎知識】Pythonコレクション型の正しい選び方
├─【Pythonの基礎知識】関数を使ってコードを整理しよう
├─【Pythonの基礎知識】try-exceptで学ぶPythonの例外処理
├─【Pythonの基礎知識】Pythonのファイル操作を完全理解
├─【Pythonの基礎知識】モジュールとライブラリを使う方法
├─【Pythonの基礎知識】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, numpy | pipでインストールが必要 |
JavaとPythonにおけるライブラリの役割比較
Pythonの「モジュール」や「ライブラリ」は、JavaにおけるクラスやJARファイルと非常に似た役割を持ちます。ただし、インタプリタ型とコンパイル型という違いがあるため、構成ファイルや管理方法には差があります。
項目 | Python | Java |
---|---|---|
単体ファイルの再利用 | .pyファイル(モジュール) | .classファイル |
複数機能の集合体 | ライブラリ(複数モジュール) | JARファイル(複数クラス) |
パッケージ管理ツール | pip、requirements.txt | Maven、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()が正しい関数です。
用語 | 使用環境 | 説明 |
---|---|---|
pwd | Bash / 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クラスだけを取り出して使っています。
標準ライブラリであっても、 os、 datetime、 randomなどはすべて 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, Django | HTTP通信, API, サーバー構築 |
データ分析 | pandas, numpy, openpyxl, matplotlib | 表データ, 数値計算, Excel, グラフ描画 |
機械学習 | scikit-learn, xgboost, LightGBM | 学習モデル構築、予測、評価 |
ディープラーニング | TensorFlow, Keras, PyTorch | ニューラルネットワーク, 画像・音声認識 |
Webスクレイピング | BeautifulSoup, Selenium, Scrapy | HTML解析, 自動操作, クロール |
自然言語処理 | 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のクラスとオブジェクトを最初に学ぶ」の使い方に進むのがおすすめです。