17. モジュール
使用方法
Pythonでは標準で使用可能なモジュールとサードパーティ製のモジュールが存在する。 基本的に使用する場合は、ソースコードの冒頭部分で
1
|
|
でインポートできる。
from と as
1
|
|
Aにはパッケージ名やモジュール名を指定する。
Bには取り込みたいパッケージやモジュール名またはクラスや関数名、変数名なども指定できる。
必要なもの以外をインポートすると、名前の衝突等予想外のトラブルが起こる場合があるので、必要なものだけインポートする方がbetter。
1
|
|
Aに含まれるものをすべてインポート。Aにmethod_a()という関数がある場合、この方法ならmethod_a()と直接アクセスできるトラブルの元なので、この記法は何がインポートされるかわかっている場合以外は避けたほうが無難。
1
|
|
長い名前のパッケージに含まれているものにシンプルな名前でアクセスできる。別名は混乱の元なので、やたらめったら使うのは避けたほうが良い。
自作モジュールのインポート
モジュールは以下の順に調べて、最も最初に見つかったものがインポートされる。
- 実行中のファイルと同じフォルダ
- カレントフォルダ
- 環境変数「PYTHONPATH」に列挙したフォルダ
- sys.pathに登録してあるフォルダ
同一ディレクトリにあるPythonのプログラムは以下のようにしてインポートできる。
- program_a.py
1 2 3 |
|
- program_b.py
1 2 3 4 |
|
実行してみる。
1 2 |
|
モジュールのドキュメント
以下のように3重引用符で囲んだ文字列をクラスや関数の直後に記入しておくと、 pydoc等で確認した時にわかりやすい形でクラスや関数の説明を表示してくれる。 きちんと各コメントを書いておくと、後に救われること多々あり。
以下の内容をtest.pyという名前で保存。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
test.py を保存したディレクトリでインタプリタを起動。インタプリタでhelp()を入力。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
役立つモジュール
標準モジュール
代表的なものをあげておく。ここであげたものはひと通りドキュメントに目を通しておくとよい。他にもいろいろある。
- re: 正規表現に関するモジュール
- datetime: 日付に関連するモジュール
- calender: カレンダーに関するモジュール
- mutex: 並列処理時の排他制御に関するモジュール
- pprint: 入れ子のリストやディレクトリの表示が見やすいprint
- copy: 浅いコピーと深いコピーを扱うモジュール
- math: 数学関連のモジュール
- random: 乱数生成に関するモジュール
- os.path: ディレクトリ名やファイル名に関するモジュール
- shutil: 高レベルなファイル操作(圧縮ファイルの操作等も)
- sqlite3: SQLiteデータベース用モジュール
- time: 時刻データのためのモジュール
- argparse: コマンドラインオプション、引数などのパーサ
- multiprocessing: 並列処理のためのモジュール
- cPickle: データの永続化
- json: JSON形式のエンコードおよびデコード
- urllib: URLによる任意リソースへのアクセス
- urllib2: URLを開くための拡張可能なライブラリ
- sys: システムパラメータと関数
- pydoc: 開発ドキュメント生成とオンラインヘルプに関するモジュール
- unittest: ユニットテストフレームワーク
- pdb: デバッグ用モジュール
サードパーティのプログラム&Python用モジュール
個人的にお世話になったプログラムとそのバインディングモジュールたち。 詳細なインストール方法はそれぞれ異なるので各モジュールのページを参照のこと。 ただし、メジャーなモジュールはpip(Pythonのモジュール管理用プログラム)でインストール可能。 基本的にpipでインストール可能なものはpipでインストールすること。
1
|
|
検索する場合、
1
|
|
もしpipがインストールされていない場合は、
1
|
|
でインストールできるはず。ただし情報が古いかもしれないので、上手くいかない場合はググってください。また各モジュールの使い方は公式ドキュメントを見るかググってください。
- MeCab: 日本語の形態素解析エンジンのモジュール。
- CaboCha: Support Vector Machines に基づく日本語係り受け解析器のモジュール。
- LIBSVM: Support Vector Machine(SVM)に関するモジュール。
- NLTK: 自然言語処理に関するモジュール。
- NumPy&SciPy: 数値計算・科学計算に関するモジュール。大規模な行列演算や、高速な計算アルゴリズムが使用できる。
- PLI: Python Imaging Library 強力な画像処理用モジュール。
- Matplotlib: 作図(主にグラフ)用のモジュール。
- Beautiful Soup: HTLMやXML等のパーサ。標準モジュールにある各種パーサよりもこちらを使うことを推奨します。
- mechanize: Webから情報をクロールするときに超便利。