Python開発の最強の相棒!パッケージ管理ツール「pip」入門
こんにちは。ゆうせいです。
Pythonを学び始めて、何か面白いものを作ろうと思った時、こんな経験はありませんか?
Webサイトの情報を自動で集める「スクレイピング」や、データをグラフにする「データ分析」の解説サイトを見てみると、決まってimport requests
やimport pandas
といったコードから始まります。しかし、それを自分のPCで実行してみると、「そんなモジュールは存在しません」というエラーが出てしまう…。
これは、Pythonプログラミングの誰もが通る道です。そして、この問題を一瞬で解決してくれる魔法の杖こそが、今回ご紹介する「pip」コマンドなんです!
pipって一体なに?
pipは、一言で言うと「Pythonのパッケージ管理ツール」です。
スマートフォンの「App Store」や「Google Playストア」を思い浮かべてみてください。私たちは、電卓や地図、ゲームといったアプリを、自分で一からプログラミングして作ったりはしませんよね? ストアで検索して、ボタンをタップするだけでインストールして使っています。
pipがやっているのは、まさにこれと同じこと。Pythonの世界における「アプリストア」から、便利な機能が詰まった「パッケージ(ライブラリとも呼ばれます)」を探して、自分の環境にインストールしてくれるツールなのです。
ちなみに、pipは "Pip Installs Packages" の略だそうです。面白いですよね。
パッケージとPyPI
ここで、二つの専門用語を押さえておきましょう。
- パッケージ: 世界中の開発者が作って公開している、便利な機能の詰め合わせのことです。
requests
はWebとの通信を簡単にしてくれるパッケージ、pandas
はデータ分析を強力にサポートしてくれるパッケージです。これらがPythonの「アプリ」にあたります。 - PyPI (Python Package Index): これらのパッケージが登録されている、公式の「アプリストア」です。pipは、私たちが「このパッケージが欲しい!」と命令すると、このPyPIに探しに行ってくれます。
なぜpipが不可欠なのか?
「便利なのは分かったけど、そんなに重要なの?」と思うかもしれません。はい、現代のPython開発において、pipはもはや電気や水道と同じくらい重要なインフラです!
メリット1:車輪の再発明をしなくて済む
Webと通信する、Excelファイルを読み書きする、画像を加工する…。こうした一般的な処理は、すでに多くの優秀なプログラマーが最高のコードを書いて、パッケージとして公開してくれています。
私たちがそのパッケージを使えば、面倒な部分をすべてスキップして、本当に作りたいものの開発に集中できます。これこそが、Pythonが様々な分野でスピーディーに開発できると言われる大きな理由の一つです。
メリット2:依存関係を自動で解決してくれる
これがpipの最も強力な機能かもしれません。「依存関係の解決」です。
少し難しい言葉に聞こえますが、例えるなら「カレー作り」です。あなたが「カレーを作りたい!(=パッケージAをインストールしたい)」と思ったとします。でも、カレーを作るには、カレールーだけでなく、じゃがいもや人参、お肉も必要ですよね。
パッケージも同じで、パッケージAが動くためには、内部でパッケージBやパッケージCを必要としていることがよくあります。これを「依存関係」と呼びます。
もしpipがなければ、あなたは「カレーには何が必要かな…」と、じゃがいもや人参を自分で一つ一つ調べて買ってくる必要があります。大変ですよね。しかしpipを使えば、「カレーが作りたい」と伝えるだけで、必要な材料(依存パッケージ)を全自動で、漏れなく揃えてくれるんです!
これだけは覚えたい!必須pipコマンド
では、実際にpipを使ってみましょう。操作はすべて、WindowsならコマンドプロンプトやPowerShell、Macならターミナルといった黒い画面(CUI)で行います。
パッケージをインストールする: install
最もよく使うコマンドです。requests
パッケージをインストールしてみましょう。
pip install requests
たったこれだけです。実行すると、PyPIへの接続やダウンロードの様子が表示され、数秒から数十秒でインストールが完了します。
インストール済みパッケージの一覧を見る: list
自分のPCに今どんなパッケージが入っているかを確認できます。
pip list
ずらっと一覧が表示されるはずです。自分でインストールした覚えのないパッケージもたくさんあると思いますが、それらは依存関係によって自動でインストールされたものです。
パッケージを更新する: install --upgrade
パッケージは日々更新され、新しい機能が追加されたり、セキュリティの問題が修正されたりします。定期的に更新するのがおすすめです。
pip install --upgrade requests
パッケージをアンインストールする: uninstall
不要になったパッケージを削除するのも簡単です。
pip uninstall requests
チーム開発の必需品! requirements.txt
あなたが作ったプログラムを、他の人に渡す場面を想像してください。そのプログラムがrequests
とpandas
を使っていたら、相手にも同じものをインストールしてもらわないと動きませんよね。
口頭で「この2つをインストールしてください」と伝えてもいいですが、パッケージが10個、20個と増えたらどうでしょう? バージョンまで指定する必要があったら?
この問題を解決するのがrequirements.txt
というファイルです。
環境のパッケージを書き出す: freeze
まず、現在の環境にインストールされているパッケージとそのバージョンを一覧にしてファイルに書き出します。
pip freeze > requirements.txt
このコマンドを実行すると、requests==2.28.1
のような形式で、全パッケージが記述されたrequirements.txt
ファイルが作成されます。これは、あなたのプロジェクトの「レシピ」や「買い物リスト」のようなものです。
ファイルからまとめてインストールする: install -r
プログラムと一緒にこのrequirements.txt
ファイルを渡された人は、次のコマンドを一度実行するだけで、あなたの環境を完全に再現できます。
pip install -r requirements.txt
これで、必要なパッケージが、必要なバージョンで、一括でインストールされます。チーム開発や、作ったプログラムを別の環境で動かす(デプロイする)際には、絶対に欠かせない手法です!
次のステップへ:仮想環境を学ぼう
さて、pipの基本的な使い方が分かったところで、最後にとても大事な話をします。それは「仮想環境」という考え方です。
プロジェクトAではバージョン1.0のパッケージが必要なのに、プロジェクトBではバージョン2.0が必要、という状況がよく発生します。もしPC全体で一つの環境を共有していると、両立できずに困ってしまいますよね。
そこで、「プロジェクトごとに、独立したPython環境(パッケージを入れる箱)を用意しよう」というのが仮想環境の考え方です。これにより、プロジェクト間でのパッケージの衝突(コンフリクト)を完全に防ぐことができます。
Pythonにはvenv
という仮想環境を構築するための標準機能が備わっています。
pipを覚えたあなたの次のステップは、間違いなくこのvenv
の使い方をマスターすることです。pipとvenvをセットで使えるようになって、初めて一人前のPython開発者への扉が開かれます。ぜひ調べてみてください!
便利なパッケージを使いこなし、あなたのPython開発をどんどん加速させていきましょう!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。