Pythonパッケージの管理方法

Pythonはオープンソースなパッケージが多く存在しています。そのパッケージを管理する方法です。

Pythonパッケージとは

Pythonは他のプログラム言語と同じくコーディングでは多くの関数やクラスを作成します。

それらをまとめて「.py」ファイルにして動かします。

この「.py」ファイルはメインのプログラムにもなり、モジュールにもなります。

Pythonをコーディングするときに他の「.py」ファイルに定義された関数やクラスを使うときは、頭に「import」文でファイル(モジュール)名を指定します。

この場合その「.py」ファイルはモジュールとなります。

そして複数のモジュールをまとめたものがパッケージとなります。

複数の「.py」ファイルがあるフォルダに「init.py」ファイルを置けば、それらはパッケージとなります。

init.py」ファイルの中身は何も書かなくても動作します。

例えば以下の構成になっているsampleパッケージがあるとします。

sample
├── __init__.py
├── chap1.py
└── chap2.py

そしてそれぞれのファイルの中身は以下とします。

# chap1.pyの中身
import chap2
def func1():
    chap2.func2()
    print("This is chap1.")
# chap2.pyの中身
def func2():
    print("This is chap2.")

「test.py」を作成してこのパッケージの「chap1」の「func1」関数を使うときは以下のように記述します。

# test.pyの中身
import sample
sample.chap1.func1()

この場合、パッケージ内のモジュール名「chap1」を記述しています。

数多くのモジュールを含んだパッケージだと、モジュール名を記述するのは困難になります。

そのときはimportの際にモジュール名を記述しなくてもいいように「init.py」ファイルに以下を記述します。

# __init__.pyの中身
from sample.chap1 import func1

こうすると「test.py」で使う際にモジュール名を省略できます。

# test.pyの中身
import sample
sample.func1()

結果は以下のように表示されます。

This is chap2.
This is chap1.

オープンソースな公開されているパッケージを利用する

自ら作成したモジュールをまとめてパッケージ化して利用することもありますが、多くは公開されているオープンソースのパッケージ利用すると思います。

外部からのパッケージを使っているPython環境で利用できるようにするには、そのPython環境にパッケージをインストール・アンインストールが簡単にできる「pip」コマンドを利用します。

pipコマンドはPyPI(Python Package Index)というパッケージのリポジトリ(カタログ)からダウンロードしてインストールします。

使えるパッケージが豊富にあります。

pipの使い方

パッケージのインストール

pipコマンドでパッケージをインストールするときはコマンドコンソール(ターミナルやコマンドプロンプト)で以下を入力します。

$ pip install パッケージ名

テキストファイルに書かれたパッケージを一括でインストールすることもできます。

$ pip install -r テキストファイル

例えばテキストファイルにインストールしたいパッケージを以下のように書きます。

pygame==1.9.6
notebook==5.7.8
Pillow==6.1.0

Python3.4からpipが含まれていますが、もしpipが利用できなければ次の手順でインストール可能です。

まずは、「get-pip.py」ファイルを以下のURLからダウンロードします。

https://bootstrap.pypa.io/get-pip.py

ダウンロードできたら、pythonコマンドで実行します。

$ python get-pip.py

インストール完了したら、確認のためバージョンを表示します。

$ pip -V

パッケージの確認

インストールされているパッケージを確認するには以下のコマンドを入力します。

$ pip list
もしくは
$ pip freeze

以下のコマンドでインストールされているパッケージの詳細を見ることもできます。

$ pip show パッケージ名

パッケージのアップグレード

パッケージも日々更新されています。

すでにインストールしているパッケージをアップグレードするには以下のコマンドを入力します。

$ pip install --upgrade パッケージ名

パッケージのアンインストール

パッケージをアンインストールするときは以下のコマンドを入力します。

$ pip uninstall パッケージ名