Pythonのプログラミング言語としての一つの特徴は「バッテリー同梱」と言われるもので、何か他に別から導入しなくても多くのことができる機能が備わっています。
Pythonには、様々な場面で役立つ高度な処理を可能にしてくれるモジュールがたくさんあります。この多くの高機能なモジュールを一つにまとめたものを標準モジュールと言います。
また、標準ライブラリ以外にも、Pythonで利用できる無料のライブラリやモジュールが公開されいます。これらはとても役に立つものもあって、Pythonプラグラミングで定番のような扱いになっているようなサードパーティーパッケージもあります。
ここでは標準モジュール、サードパーティーパッケージについてみていきましょう。
標準ライブラリ
Pythonでの関数を定義を学んだ時に、あらかじめ用意されている組み込み関数があることにも触れました。そこでは、len()関数を例に触れましたが、print()関数は当たり前のようにコード例として使っています。これも組み込み関数です。
この組み込み関数も標準ライブラリの一つです。
標準ライブラリはこの、組み込み関数だけでなく、組み込み定数、組み込み型といったすでに扱ってきた内容もここに多く含まれています。他にも数学モジュールやファイルの操作、インターネットの通信など全てここで触れることは無理があります。
どのようなものがあるのかは、こちらのドキュメントを確認してください。
ここでは一つだけ例として標準ライブラリを使ったコードを見ていきましょう。
標準ライブラリの使い方
組み込み関数などは何も宣言せずにそのまま使うことができましたが、そのままでは目的のことができずにエラーになったり、コードに条件をつけるなどして複雑な処理になったりします。
標準ライブラリ中には、それを簡単に処理してくれるモジュールがあり、importして使うことになります。
簡単な例でやっておきましょう。
例えばこんなコードを用意してみました。
ms_dict = {"Setsuna": "EXIA", "Lockon": "DYNAMES", "Allelujah": "KYRIOS", "Tieria": "VIRTUE"}
print(ms_dict)
機動戦士ガンダム00のソレスタルビーイングに所属するガンダムマイスターとそのモビルスーツを対応させた辞書です。(もうええってw)
これをpirnt()関数で表示するコードです。これは組み込み関数をそのまま使ったものですよね。
Atomで実行してみましょう。ファイル名はlibrary.pyにしています。
実行するコードは見やすくする為に、改行してみました。
結果は当然のことですけど、辞書データが表示されています。特に難しくはないですね。
この結果の表示ですけど、ちょっと横長になって見えにくいと思いませんか?
もっとキーと値ごとに整理させて結果に表示されるとわかりやすいですよね。
そうする為にコードでゴシゴシ書くとなると、ちょっと一手間かかります。
キーと値を取り出して表示させるなら、これまでの知識ではitems()を使って次のように書き変えることはできますね。
ms_dict = {"Setsuna": "EXIA", "Lockon": "DYNAMES", "Allelujah": "KYRIOS", "Tieria": "VIRTUE"}
for k,v in ms_dict.items():
print(k,": ",v)
これを実行すると、こうなります。
値を取り出して見やすく表示できていますが、厳密に言えば、最初の辞書データをそのまま形を変えて表示しているというわけではないですね。
標準ライブラリの中に、pprint()と言うコードを整理して表示をしてくれるものがあります。これをimportして使ってみると、コードはこうなります。
from pprint import pprint
ms_dict = {"Setsuna": "EXIA", "Lockon": "DYNAMES","Allelujah": "KYRIOS", "Tieria": "VIRTUE"}
pprint(ms_dict)
違いはわかりますよね。コード自体が簡単ですから大きな違いには見えませんけど、処理を考えることなく単にimportして出力しただけです。
実行するとこうなります。
辞書がそのまま整理されて表示されています。最初の横長の表示よりもこうして見やすくすることができました。
このように標準ライブラリの中には便利な機能を持ったモジュールがたくさんあります。時間を扱うtimeや数学を扱うmathなど、挙げたらキリがありません。
どんなものがあるのか、サラッとドキュメントを眺めて、あとは使っていく中で調べたり慣れたりして行きましょう。よく使われるようなモジュールはやっていくうちにわかってきたりするものです。
サードパーティーパッケージを使う
Pythonには標準モジュール以外にも、たくさんのライブラリやモジュールが公開されています。とても役に立つものが多く、ほとんど無料で使うことができます。
特定のサービスなどを利用する場合、標準モジュールでは対応できないものがあります。そんな時にサードパーティーのパッケージでうまく処理できるようなものがあったりします。
自分の目的に合ったサードパーティーのモジュールを探して使いましょう。
PyPiでパッケージを探す
サードパーティーのPytonパッケージは、PyPiというサイトで公開されています。自分で作ったパッケージもここに登録して公開することができます。
ここで必要なパッケージを探すことになります。このサイトでキーワードで探して内容を確認して目的に合ったものを利用することになります。
pipでインストール
ここでは、NumPyというパッケージを見てみましょう。これはデータ分析などで数値計算を行う時に効率的に実行できる拡張モジュールです。
PyPiで探してみると、次のような情報ページが表示されます。
ここにファイルをダウンロードできる項目がありますが、いちいちファイルをダウンロードして解凍するなどといった作業は必要ありません。
ターミナルを起動して、コマンドラインから次のように入力します。
$ pip install numpy
pipコマンドを利用してパッケージをインストールします。PyPiのページの左上の方に、このコマンドが書いてますね。これをコマンドラインにコピペして実行すればインストールが完了です。
「pip install モジュール名」
このpipコマンドの使い方はしっかり覚えておきましょう。今後、何かモジュールをインストールする時に出てくることも多いでしょう。
pipは最近のPythonをインストールしたら使えるようになっています。ただし、モジュールをインストールする前に、pipを最新バージョンにしておくことも大切です。
モジュールをインストールする前に、pipを次のコマンドでアップグレードしておきましょう。
$ sudo pip install pip --upgrade
このコマンドを実行した後に、モジュールのインストールをしましょう。
インストールが完了したら、importでコードに記述してモジュールを利用することができます。
condaでインストール
ここでの環境では、Anacondaを利用しています。Anacondaをインストールしていると、condaコマンドでモジュールをインストールすることができます。
$ conda install numpy
ただし、pipでインストールしたモジュールと衝突して不具合が起きることもあるようです。私は今のところ問題はおきてませんが、どちらか一方に統一しておく方がいいかもしれませんね。
このように運用上のルールを作っておくことをお勧めします。
Anaconda-Navigatorでインストール
ところで、AnacondaはAnaconda-Navigatorからもパッケージをインストールすることができます。
Anaconda Navigatorを起動すると、この画面になりますが、左側に「Environments」というメニューがあるので、そこをクリックします。
すると、「installed」という表示で、現在インストールされているパッケージミョジュールの一覧が出てきます。
この「installed」の項目を「Not installed」に変えると、まだインストールされていないパッケージの一覧が表示されます。
私の環境ではすでにNumPyはインストールされているので、Djangoパッケージで見てみましょう。
一覧が表示され、右側の検索窓に「Django」と入力すると、インストールされていないパッケージとして表示されているのがわかります。
これにチェックを入れて、右下の「Apply」をクリックするとパッケージがインストールされます。
インストールが完了したら、importの記述でコードを書いて利用します。
まとめ
Pythonには、高度な処理を可能にしてくれるモジュールが標準パッケージとしてまとめられていて、インポートすることですぐに利用できます。
標準パッケージ以外にも有益なサードパーティーパッケージがあり、ほとんどのものが無料で利用できます。
サードパーティのパッケージはPyPiサイトに登録されていて、自由に探して使うことができます。ファイルはダウンロードしなくても、pipコマンドで簡単にインストールすることができます。
Anacondaをインストールした環境であれば、condaコマンドや、Anaconda Navigatorからパッケージをインストールして利用することができます。