サードパーティモジュール

Beginner

This tutorial is from open-source community. Access the source code

はじめに

Python には、多数の組み込みモジュールのライブラリがあります(「バッテリー付き」)。

さらに多数のサードパーティモジュールもあります。Python Package Index または PyPi で確認してください。または、特定のトピックに関する Google 検索を行ってください。

Python におけるサードパーティの依存関係の処理方法は、絶えず進化するトピックです。このセクションでは、その仕組みを理解するのに役立つ基本事項のみを扱います。

モジュール検索パス

sys.path は、import 文によってチェックされるすべてのディレクトリのリストが含まれるディレクトリです。見てみましょう。

>>> import sys
>>> sys.path
... 結果を見てください...
>>>

何かをインポートしてそれがそれらのディレクトリのいずれかに存在しない場合、ImportError 例外が発生します。

標準ライブラリモジュール

Python の標準ライブラリのモジュールは通常、/usr/local/lib/python3.6 のような場所から来ます。簡単なテストを行うことで確認できます。

>>> import re
>>> re
<module 're' from '/usr/local/lib/python3.6/re.py'>
>>>

REPL でモジュールを見るだけでも、そのファイルの場所がわかるので、便利なデバッグヒントになります。

サードパーティモジュール

サードパーティモジュールは通常、専用の site-packages ディレクトリに配置されます。上記と同じ手順を行えばそれがわかります。

>>> import numpy
>>> numpy
<module 'numpy' from '/usr/local/lib/python3.6/site-packages/numpy/__init__.py'>
>>>

再び、何かが import に関連して期待通りに機能しない原因を突き止めようとしている場合、モジュールを見ることは良いデバッグヒントになります。

モジュールのインストール

サードパーティモジュールをインストールする最も一般的な方法は、pip を使用することです。たとえば:

$ python3 -m pip install packagename

このコマンドは、パッケージをダウンロードして site-packages ディレクトリにインストールします。

問題

  • 直接コントロールできない Python のインストールを使用している場合があります。
    • 企業が承認したインストール
    • オペレーティングシステムに付属している Python バージョンを使用している
  • コンピュータにグローバルパッケージをインストールする許可がない場合があります。
  • 他の依存関係がある場合があります。

仮想環境

パッケージのインストール問題の一般的な解決策は、自分用の「仮想環境」を作成することです。当然ながら、その方法は「一つの方法」ではありません。実際、いくつかの競合するツールや技術があります。ただし、標準的な Python インストールを使用している場合、次のように入力してみることができます。

$ sudo apt install python3-venv
$ python -m venv mypython
bash %

数分待つと、自分専用の小さな Python インストールである新しいディレクトリ mypython ができます。そのディレクトリ内には、bin/ ディレクトリ(Unix)または Scripts/ ディレクトリ(Windows)があります。そこにある activate スクリプトを実行すると、この Python のバージョンが「アクティブ」になり、シェルの既定の python コマンドになります。たとえば:

$ source mypython/bin/activate
(mypython) bash %

ここから、自分用に Python パッケージをインストールすることができます。たとえば:

(mypython) $ python -m pip install pandas

...

実験やさまざまなパッケージの試用目的では、仮想環境で通常問題なく機能します。一方、アプリケーションを作成していて特定のパッケージ依存関係がある場合は、やや異なる問題です。

アプリケーションにおけるサードパーティ依存関係の処理

アプリケーションを書いた場合、特定のサードパーティ依存関係がある場合、1 つの課題は、コードと依存関係を含む環境の作成と維持に関係します。残念ながら、これは Python の生涯にわたって大きな混乱と頻繁な変更の分野でした。今でもさらに進化し続けています。

すぐに古くなってしまう情報を提供する代わりに、Python Packaging User Guide をご参照ください。

演習 9.4:仮想環境の作成

上記の手順に従って、仮想環境を作成してその中に pandas をインストールできるかどうか確認してみましょう。

まとめ

おめでとうございます!あなたはサードパーティモジュールの実験を完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を行って練習してください。