Select Language

AI Technology Community

4.3、Pythonパッケージのインストール(3つの方法)

一部のPythonソフトウェアパッケージはシステムに付属しています。例えばsysです。これらのパッケージはPythonをインストールする際に自動的にインストールされます。しかし、一部のパッケージは自分でダウンロードしてインストールする必要があります。例えばPILです。これらのサードパーティのソフトウェアは、ソースコードの形式で提供されるものもあれば、インストールパッケージの形式で提供されるものもあります。

サードパーティのPythonパッケージをインストールする方法はたくさんあります。このセクションではいくつかの一般的な方法を紹介します。 

1、ソースコードをシステムディレクトリにコピーする

最も簡単な方法は、Pythonソースファイルをsys.pathに含まれるいずれかのディレクトリにコピーすることです。こうすることで、「import ファイル名」と入力するだけで、そのパッケージをインポートできます。

以下のコードでsys.path変数に含まれるパスを確認します。

>>> import sys
>>> sys.path
['', '/anaconda3/lib/python37.zip',
'/anaconda3/lib/python3.7',         # ここで使用するディレクトリ
'/anaconda3/lib/python3.7/lib-dynload',
'/anaconda3/lib/python3.7/site-packages',
'/anaconda3/lib/python3.7/site-packages/aeosa']

ファイルdemo1.pyをディレクトリ/anaconda3/lib/python3.7にコピーすると仮定します。これは上記のコードの4行目で指定されたディレクトリです。このファイルの内容は以下の通りです。

""" just a demo package
"""
var_str = "love python"
var_int = 88
def show_usage():
    print("just to demo the package installation")

これでdemo1モジュールを使用できます。方法は以下の通りです。

>>> import demo1
>>> demo1.var_int
88
>>> demo1.__doc__
' just a demo package\n'
>>> demo1.var_str
'love python'
>>> demo1.show_usage()
just to demo the package installation

2、PIPを使用してインストールする

最近では、PIPが人気のインストールツールです。このツールは一般的にPythonをインストールする際に正常にインストールされるため、別途インストールする必要はありません。PIPはクライアント側のインストールツールで、インストールパッケージはPyPIから取得されます。PIPはPyPIからインストールパッケージをダウンロードし、自動的にローカルにインストールします。

Pythonソフトウェアパッケージの作成者は、PyPIアカウントを持っている必要があります。これにより、自分が作成したPythonパッケージをPyPIにアップロードし、他のユーザーが使用できるようにすることができます。一方、一般ユーザーはPyPIアカウントを登録する必要はありません。ローカルにPIPクライアントプログラムがあれば十分です。

PIPは、インストール、アンインストール、インストール済みのソフトウェアパッケージの一覧表示などの機能を提供します。以下では、これらの一般的な機能について説明します。

1) インストール

インストールには、バージョン情報を指定しない場合と、バージョン情報を指定する場合の2つの一般的なコマンドがあります。それぞれの形式を以下に示します。

pip install パッケージ名
pip install パッケージ名==バージョン番号

すでにインストール済みのパッケージのバージョンを変更したい場合は、以下のコマンドを使用します。

pip install --upgrade パッケージ名==バージョン

以下は、Pythonパッケージlin-demoをインストールする例です。

$ pip install lin-demo
Collecting lin-demo             # lin-demoパッケージの関連情報を取得する
Downloading https://files.pythonhosted.org/packages/87          # インストールパッケージをダウンロードする
/35/985a9e7d7fd66bfe82c3c83092bb14d23105e15b5738e02b6c761737c8a8/
lin_demo-0.0.1-py3-none-any.whl
Installing collected packages: lin-demo # インストールする
Successfully installed lin-demo-0.0.1  # インストール成功。インストールされたバージョンを表示する


PyPIはオープンソースプロジェクトであるため、一部の企業では独自のPyPIサーバーを構築しています。一部の専用パッケージは、企業独自のサーバーからしか取得できない場合があります。この場合、デフォルトのサーバーではなく、PyPIサーバーの情報を指定する必要があります。以下のコマンドで、インストールパッケージのソースを指定できます。

pip install --index-url パッケージのソース パッケージ名

一度に多くのソフトウェアパッケージをインストールする場合、特に開発環境や実行環境を構築する際に、1つずつインストールコマンドを実行するのは面倒です。

この場合、インストールするパッケージをテキストファイル(例えばrequirements.txt)に記述し、そのテキストファイルを入力として使用することで、テキストファイルに記載されたPythonパッケージを一度にインストールできます。これはバッチ処理コマンドであり、形式は以下の通りです。

pip install -r パッケージリストファイル

パッケージリストを含むテキストファイルの形式も簡単です。一般的には、1行に1つのパッケージ名とバージョンを「パッケージ名==バージョン」の形式で記述します。以下はその例です。

CherryPy==13.0.0
Jinja2==2.10
MySQL-python==1.2.5
Routes==2.4.1
SQLAlchemy==1.1.15
Werkzeug==0.13
hpc==0.2.725
requests==2.18.4

2) アンインストール

アンインストールは比較的簡単です。1台のマシンには、あるソフトウェアパッケージの特定のバージョンしかインストールできず、それは必ずローカルにインストールされているため、アンインストールコマンドにはバージョン指定やソース指定のパラメータはありません。以下は、あるパッケージをアンインストールするコマンドの形式です。

pip uninstall パッケージ名

3) インストール済みのパッケージを確認する

時々、import文を実行すると例外が発生することがあります。これは、あるソフトウェアパッケージがインストールされていないか、インストールされているバージョンが正しくない可能性があります。この場合、以下のコマンドで、ローカルにインストールされているすべてのPythonパッケージを確認できます。

pip freeze

以下はその例です。

$ pip freeze
alabaster==0.7.12                # 0.7.12はバージョン情報
allure-pytest==2.7.0
allure-python-commons==2.7.0
anaconda-client==1.7.2
…                                           # その他のインストール済みのPythonパッケージ
anaconda-navigator==1.9.7
anaconda-project==0.8.2
appnope==0.1.0

4) あるパッケージの詳細情報を確認する

あるパッケージの具体的な機能や、それが依存しているパッケージの情報が不明な場合、以下のコマンドでそのパッケージの詳細な説明を確認できます。

pip show パッケージ名

以下はその例です。

$ pip show SQLAlchemy
Name: SQLAlchemy
Version: 1.2.11                    # バージョン情報
Summary: Database Abstraction Library
Home-page: http://www.sqlalchemy.org
Author: Mike Bayer
Author-email: mike_mp@zzzcomputing.com
License: MIT License
Location: /Library/Python/2.7/site-packages     # インストール位置
Requires:                              # それが依存しているパッケージ
Required-by:                        # そのパッケージに依存しているパッケージ

5) サーバー上のパッケージ情報を確認する

コマンドラインを使用してパッケージを検索できます。コマンドラインの形式は以下の通りです。

pip search パッケージ名

すると、指定したパッケージ名に類似するパッケージの情報(バージョンや説明情報を含む)が表示されます。以下は、demoという文字列が含まれるパッケージの情報を検索する例です。

$ pip search demo                             # demoに

post
  • 10

    item of content
Pythonにおいて、ディレクトリとファイルは非常に重要で、異なるファイルでは同じ関数や変数を定義しても衝突が起こりません。これはJavaに似ており、CやC++とは明らかに異なります。Pythonはソースコードのレベルでネームスペースを定義していないため、ファイルとパスがimport文と共にネームスペースの役割を果たします。
異なるPythonファイルは異なるモジュールに対応し、同じディレクトリ内の複数のPythonファイルの集合が1つのパッケージとなります。
この章では、読者にPythonのモジュールとパッケージの概念と定義を説明し、合わせてサードパーティのPythonパッケージの様々なインストール方法と使用法を紹介します。