書籍や学習サイトでpythonのプログラムの書き方を一通り覚えて、いざ自分のやりたいことを書こうと思って、参考にネットで調べると全く見たことないコードに出くわして、理解できずに挫折するということはないでしょうか?
これは、書籍や学習サイトが教えるpythonの基本的な書き方とpythonを実践的に利用する場面とで乖離ができてしまっていることによるものだと思います。
この挫折は、pythonの本当の良さを享受できていない非常に残念な例なので、このページの内容を読んで、少しでもそんな人が減ってくれることを祈るばかりです。
pipとは?
おそらくpythonのプログラムを書こうとネットで他人のコードなど調べられた方は、その時に「pip install 〜 」というワードをどこかで見かけていると思います。
「pipって何ですの?」って思いますよね。
pipを理解するためにまずは、モジュールという考えを理解します。
モジュールについて
「Pythonの始め方③ プログラムってどこに書くの?Pythonの記述場所と実行方法」の投稿の中で.pyファイル(スクリプト)を作成し、それを実行するということをしました。
前回書いたプログラムは「hello world」と表示するだけのプログラムでした。ただ、仮にまた同じことをするプログラムが必要になった場合には、再び同じコードを書くのは面倒だと思います。
実はPythonでは、一度書いたスクリプトを読み込むことができるという素晴らしい機能があります。
hello worldのプログラムではわかりにくいので、もう少し複雑なプログラムで詳しく説明していきたいと思います。
1からNまでの和を計算するスクリプト
ある数字Nを与えた時に、数字を1+2+3+…+Nと足した時に合計がいくらになるかを計算するプログラムを作成します。
pythonファイルの名称はcalculate.pyとします。
※pythonの記述方法はある程度理解していることが前提で書いています。
def summary(n):
s = 0
for i in range(1, n + 1):
s += i
return s
print(summary(10))
このcalculate.pyファイルをターミナルで実行します。
※Windowsもほぼ同じなので、Macの場合のみ記述します。
$ python3 calculate.py
55
関数の形式で書いたので、summaryの後ろのカッコ内の数字を変えることで、計算結果が変わります。
calculate.pyファイルをモジュールとして読み込む
1からNの和を計算するsummary関数をせっかく作成したので、今後同じような計算する場合には、このプログラムを使いたいと考えると思います。そこで、summary関数を定義した.pyファイルをimportという形で読み込みます。この時のcalculate.pyをモジュールと呼びます。
上記のcalculate.pyでは、毎回print(summary(10))が実行されてしまうので、その部分を削除したcalculate.pyファイルを作成し、ターミナルでimportして使ってみます。
def summary(n):
s = 0
for i in range(1, n + 1):
s += i
return s
$ python3
Python 3.7.0 (default, Jul 23 2018, 20:22:55)
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import calculate
>>> calculate.summary(100)
5050
上記の通り、calculate.pyをimportするときは「.py」の部分は書かなくて大丈夫です。
これで、今後1〜Nの和を計算したいときは、calculate.pyをimportしてきて利用すれば良いことになります。めでたしめでたしです。
※importするときはcalculate.pyは同じフォルダにないとimportできません。他のフォルダに置いているモジュールを読み込みたい場合は別途作業が必要ですが、その手順はここでは割愛します。
- pythonでは一度書いた.pyファイル(スクリプト)を読み込むことができる。
- 関数などを定義した.pyファイル(スクリプト)をモジュールと呼ぶ。
モジュールはいろんな人が作っている
モジュールは、一度定義した関数を簡単に呼び出せる便利なものでした。
当然、自分が作ったモジュールだけでなく、他人が作ったモジュールであっても、.pyファイルになって入れば読み込むことができます。
もし、自分がこんな関数あったらいいなぁと思ったものが、すでに他の誰かが作っていて、しかも無料で使っていいよと言ってくれていたらすごく嬉しいと思いませんか?
なんと、pythonの世界では、そんな便利モジュールを作っている人が世界中にたくさんいて、かつ無料で公開してくれているのです。なんて優しい人たちばかりなんでしょうか。素敵な世界ですね。
PyPI図書館と管理人pip
世界中の人達が作ったモジュールが集まっているのが、Python Package Index(PyPI)です。そして、そこに集まるモジュールをインストール・管理するソフトウェアがpipになります。
もう少しわかりやすく言うとPyPIという図書館があり、そこに管理人のpipさんがいて、自分で作ったモジュールを公開したい人からモジュールを受け入れ、使いたい人にモジュールをインストールできるように管理しているのです。

そして、モジュールを使いたい人が、PyPIからインストールするときに使うコマンドがpip install〜なのです。
先の例では一つの関数を書いた.pyファイルをモジュールとしましたが、PyPI上で管理しているものは非常に複雑なことができるので、1つの.pyファイルだけでなく、複数の.pyファイルなどが集まったモジュール群になっています。なので、そのようなモジュール群をパッケージと呼びます。PyPIの正式名称がPython Package Indexと言っているのもそこから来ていると思います。
※ここで、PyPIを図書館に例えていますが、実際にはPyPIのことを図書館と呼ぶことはありません。逆に、PyPIに公開しているモジュール群(パッケージ)をライブラリと呼んだりしますので、ご注意ください。
- PyPIは世界中のモジュールやモジュール群が集まった図書館のようなところ。
- pipはPyPI上のモジュール群(パッケージ)を管理しているソフトウェアである。
- パッケージをインストールしたいときはpip install パッケージ名でインストールできる
pipの使い方
pipが何なのかを理解できたところで実際にpipを使って見たいと思います。
ここで、ふと気になることがあると思います。
「pipさんって自分のパソコンにいてるの?」
こんな素晴らしいPyPI図書館を管理しているpipさんが皆さんのパソコンに標準に備わっているのか?残念ながら最初からいるわけではありません。
ところが、実はPythonをインストールした時点で、pipさんも一緒にインストールされているのです。(※ただし、Python3.4以降)
一安心ですね。
なので、すでにPythonをインストール済みのかたはpipコマンドがすでに使える状態です。
まだPythonをインストールしていない方はPythonの始め方② Pythonのインストールを参照ください。
pip installでパッケージをインストールする
では、実際にpip installでパッケージをインストールしてみます。残念ながらpip installはターミナルで行わなければなりません。なので、ターミナルを開いて試しに以下のコマンドを入力してみてください。どのフォルダでコマンドを実行しても構いません。
ここでは、python界ではすごくメジャーなモジールであるnumpyをインストールしてみます。
Macの場合
$ pip3 install numpy --user
Collecting numpy
Using cached https://files.pythonhosted.org/packages/c1/4b/78119133136c20e5ad2e01bf72b0633241defd619939908223cd394a9c32/numpy-1.17.0-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Installing collected packages: numpy
Successfully installed numpy-1.17.0
python3.4以降で標準で入っているpipはpip3なのでpip3 installと書きます。
pip3 install numpyでもインストールできるかもしれませんが、もしかするとpermission denied(権限がありません)というエラーがでるかもしれません。
ログインしているユーザーのみでpip3 installしたいことを示すためにpip3 install パッケージ名の後ろに–userとつけるのが良いと思います。
Windowsの場合
> py -3 -m pip install numpy
python3にパッケージをインストールすることを明示するために、py -3としています。
Windowsで実行する場合はコマンドプロンプトを管理者権限で開かなければなりません。
コマンドプロンプトを管理者権限で実行する方法はこちらを参照ください。
pip installしたパッケージ(モジュール群)を利用する
では、パッケージが正しくインストールされているか確認してみましょう。ターミナルでpythonを起動し、numpyをimportしてみます。(Windowsでも同様です。)
上記のように何も出なければ無事インストールできています。
インストールできていない場合はエラーがでます。
$ python3
Python 3.7.0 (default, Jul 23 2018, 20:22:55)
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>>
晴れて、numpyというパッケージを使えるようになりました。めでたしめでたし。
代表的なパッケージ(ライブラリ)
私のサイトでよく使うパッケージ(ライブラリ)をいくつか紹介しておきたいと思います。
他にも無数に存在するので、まずは自分がなにかプログラムを書こうと思った時に、同じことができるライブラリがないかを調べるのが大事です。
ライブラリ名称 | 内容 |
numpy | 数値計算を行うためのライブラリ。行列計算が得意。 |
pandas | 表データ解析を支援する機能を提供するライブラリ。 テーブルを作成する際には必須です。 |
matplotlib | グラフを描画するためのライブラリ。 |
requests | HTTPのリクエストを送るためのライブラリ。 スクレイピングなどで、Webサイトにアクセスするときなどに使います。 |
pickle | データを保存するライブラリ。 |
beautifulsoup4 | スクレイピングをするときに使うライブラリ。 htmlやxmlのタグの構造を解析できます。 |
もっと勉強したい人のためのおすすめ本
以上がpythonを便利に使うためのpipの理解になります。
世界中の人が作った便利ツールを簡単に利用できるところがpythonの良いところです。
皆さんのお役にたてばと思います。
もっとしっかりと勉強したい方はこちらの本を読んでいただければと思います。


コメント
[…] pipって何ですか?Pythonを便利に利用するためのpipの理解 […]
[…] jupyter notebookの使い方については「Pythonの始め方⑤ jupyter notebookでpythonを動かす」を御覧ください。ただ、その前にこちらの「Pythonの始め方④ pipって何ですか?Pythonを便利に利用するためのpipの理解」を先に読むことをおすすめします。 […]
[…] pythonにはスクレイピングを簡単に行えるBeautifulSoupという便利なモジュールがあります。今回はこのBeautifulSoupというモジュールを利用したいと思います。ただし、BeautifulSoup以外にも必要なモジュールがいくつかありますので、以下のモジュールがインストールされていない方は、pip installでインストールしてください。versionは最新のもので良いので特に指定しなくて良いです。pipがよくわからない方はこちらをご参照ください。Pythonの始め方④ pipとは?Pythonを便利に利用するためのpipの理解 […]
[…] pythonにはスクレイピングを簡単に行えるBeautifulSoupという便利なモジュールがあります。今回はこのBeautifulSoupというモジュールを利用したいと思います。ただし、BeautifulSoup以外にも必要なモジュールがいくつかありますので、以下のモジュールがインストールされていない方は、pip installでインストールしてください。versionは最新のもので良いので特に指定しなくて良いです。pipがよくわからない方はこちらをご参照ください。Pythonの始め方④ pipとは?Pythonを便利に利用するためのpipの理解 […]
[…] pipはpython3.4以降のものをインストールすれば、一緒にインストールされるのであまり気にしなくても大丈夫だと思います。pipって何ですか?ってゆう感じの人はこちらを御覧ください。Pythonの始め方④ pipとは?Pythonを便利に利用するためのpipの理解 […]