Python:ライブラリ導入について(seleniumなど基本的なもの)
音声
目次
基本と今回できること
今回できるようになることは、Pythonで外部ライブラリを導入して使い始める基本手順を理解することです。
Pythonは、標準ライブラリ(OS操作やHTTPなど)と、外部ライブラリ(pipで追加するパッケージ)に分かれます。seleniumはブラウザ自動化を行う外部ライブラリです。
どんな場面で外部ライブラリが必要かを先に押さえると、選定が効率的です。たとえば、軽いHTTP取得やHTML解析であれば標準ライブラリのurllibや、外部のrequestsとBeautifulSoupの組み合わせを使います。一方で、ブラウザ上での操作確認やJavaScriptの評価が必要であれば、seleniumを使う判断になります。
ライブラリ導入の流れ(pipと仮想環境)
導入手順はシンプルです。
まずプロジェクトごとに仮想環境を作ると依存管理が安定します。Windowsでは python -m venv venv、Mac/Linuxでは python3 -m venv venv が基本です。
仮想環境を有効化してから pip install でパッケージを入れます。pipはPythonのパッケージ管理ツールで、インストールは1行で完了します。
例(pipインストール)です。
pip install selenium
このコマンドでseleniumが仮想環境に追加されます。ブラウザドライバは別途用意が必要です。
最小コードと実行
最小コードは次のとおりです。
# check_packages.py
import importlib.util
import sys
def check(pkg):
spec = importlib.util.find_spec(pkg)
if spec is None:
print(f"{pkg} は未インストールです")
else:
print(f"{pkg} は利用可能です")
if __name__ == "__main__":
targets = ["selenium", "bs4", "requests"]
for p in targets:
check(p)
このスクリプトは、指定したパッケージが環境にあるかを検査して結果を表示します。外部ライブラリの有無を簡単に確認できます。
実行方法は、python check_packages.py で実行します。VSCodeでは、エクスプローラーからファイルを右クリックして「Python ファイルをターミナルで実行」を選ぶか、デバッグ実行を使います。
出力例は次のとおりです。
selenium は未インストールです
bs4 は未インストールです
requests は利用可能です
要チェックのポイントは次のとおりです。
printの出力を確認します。importlib.util.find_specがNoneかどうかで状態を判定します。- 必要なら
sys.executableをprintして、仮想環境を使っているかを確認します。
デバッグと1段ステップアップ
デバッグの見方(printやlogging、変数の確認)は基礎です。まずはprintで変数の値を出力すると状況を把握しやすいです。
より実用的には、loggingモジュールでログ出力レベルを制御すると便利です。簡単な例は次のとおりです。
import logging
logging.basicConfig(level=logging.INFO)
logging.info("チェック開始")
1段ステップアップとして、処理を関数化し、例外処理も追加すると保守しやすくなります。外部ライブラリをインポートする際は、try/except ImportErrorでフォールバック処理を用意しておくと運用時に詰まりにくいです。
ImportErrorやModuleNotFoundErrorが出る場合は、仮想環境が有効化されていないことが多いです。仮想環境をアクティブにしてから再インストールすると解決しやすいです。
注意(ここだけ)
仮想環境を作らずにシステムPythonへ直接pip installすると、別プロジェクトやシステムツールに影響する場合がありますので、プロジェクトごとに仮想環境を使う習慣にすることがポイントです。
要約
- 仮想環境を作ってから
pip installで外部ライブラリを導入できます。 - 最小コードでパッケージの有無を確認する習慣が、トラブルを減らします。
seleniumはブラウザ操作に向き、requests/bs4は静的な取得と解析に向くため、用途で使い分けます。- デバッグは
printからloggingへ発展させ、例外処理を組み合わせて頑健にします。 - 仮想環境を使わずにインストールすると依存関係が汚れやすいため、環境の確認を最優先にします。