今回は、pythonの基礎にあたる、importについて解説します!
ここでは、
「importって何?どうやるの?」
という方から、
「自作のファイルをライブラリに追加したい!importしたい!」
という方までへ向けて、
- 【基礎】 importとは
- 【基礎】 importの方法
- 【応用】 インポート対象の検索パスを追加する方法
を説明いたします。
この記事を読んでいただければ、標準ライブライのインポート方法から、任意のpyファイルをインポートさせる事までが可能です!
ぜひ、最後までお付き合いください。
本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
なお、その他のPythonの記事についてはこちらにまとめています。
インポートについて
インポートとは、標準ライブライの機能を取り込む事を言います。インポート行うことで、様々な処理をする関数を呼ぶだけで処理する事が可能になったりします。
また、独自のライブラリ(pyファイル)を作成し、それを取り込んで処理をする事も可能です。
importの方法
それでは、実際にpythonでimportを行う方法を紹介します。
ここで紹介する方法は大きく分けて3つあります。
2. “import 相対パス”で任意のライブラリをインポートする方法
3. “import_module()”を使い任意のライブラリをインポートする方法
以降では、その手順を説明いたします。
標準のライブラリをインポートする
標準ライブラリの方法は簡単です。
以下のように、”import”の後に取り込みたいファイルの拡張子”.py”を除いた名前を入力するだけです。
試しに、システムに関する処理をまとめたライブラリ”sys”をインポートしてみます。
#! /usr/bin/env python import sys print(sys.version)
sys.versionは、pythonのバージョンを表示する関数です。実行すると、あなたの現在使っているpythonのバージョンが表示されるかと思います。
コマンドラインで”$ python -V”をしたときと同じバージョンとなるでしょう。(複数のPythonが入っている場合は違うかもしれません)
このように、importを行うことで様々な機能を扱う事ができるようになります!
相対パスでインポートするファイルを指定する
ここでは、自分で作成したpyファイルなどをインポートする際に、相対パスでインポートさせる方法を紹介します。
例えば、以下のように配置されたsample.pyがあるとします。
main.py
importdir
┗ dirA
┗sample.py
この時に、”main.py”に”sample.py”をインポートするには、以下のように行います。
main.py:
from importdir.dirA import sample
このように、”from”を使うことによってディレクトリを指定する事ができます。
ただし、この方法によるインポートに仕方は__init__.pyでパッケージ化されている場合でないと使えません。
パッケージ化と__init__.pyについて知りたい方は、以下を参照してください。
import_module()を使って読み込む
最後に、import_module()を使ってインポートする方法を紹介します。
これは動的にインポートするライブラリを指定したい場合などに便利です。これを行うには、”importlib”をインポートする必要があります。
それでは、実際に”sys”をインポートする方法を確認しましょう。
#! /usr/bin/env python import importlib sys = importlib.import_module("sys") print(sys.version)
インポート対象の検索パスを追加する方法
ここからは、パッケージ化に関わらず自作のpyファイルをインポート対象として追加する方法を紹介します。
大まかな方法としては、インポートの検索パスに対象ファイルのディレクトリを追加する事です。以降では、検索パスに追加して自作pyファイルを参照できるようにする方法を紹介します。
インポート対象のディレクトリパスのリストを確認する
まずは検索パスの一覧を取得する方法を確認しましょう。
確認方法:
#! /usr/bin/env python import sys print(sys.path)
このように、”sys.path”によってインポートできるパスの一覧が表示されます。
このリストに参照させたいパスを追加する事によって、インポートを可能にする事ができるようになります。
取得したリストにパスを追加する
リストにパスを追加したい場合は、”sys.path.append()”で追加ができます。
先ほど相対パスで参照した構成のsample.pyをここでもインポートしてみましょう。
#! /usr/bin/env python import sys sys.path.append("importdir/dirA") import sample
append()の中にパスの文字列を入れる事で、インポートが可能になります。
また、ここで追加されるパスはこのスクリプト内でのみ有効です。
環境変数”PYTHONPATH”にパスを追加する
続いて、環境変数の”PYTHONPATH”にパスを追加する方法を紹介します。
こちらは、コマンドライン上で入力することにより、環境変数としてパスを追加する事ができます。
その為、一度設定したら都度append()する必要はなくなります。
コマンドは以下になります。
$ export PYTHONPATH=検索パスの一覧に追加したいパス
これを実行したのち、sys.pathを表示すると追加されている事が確認できます。
.pthファイルに書き込み、検索パスを追加する
最後に、”.pth”ファイルに書き込む事で検索対象にする方法を紹介します。
“.pth”ファイルは、参照させたいパス一覧を書き込めるファイルです。このファイルがあれば、”PYTHONPATH”と同様、常に参照できるようになります。
また、これを削除するだけで検索パスから除外できるので、システムへの影響も少ないです。
具体的な方法としては、sys.pathで表示されるディレクトリの中に”*.pth”ファイルを作成し、そこに追加したいパスを記載することでパスが通ります。
一例として、先ほどのimportdir/dirAを追加したい場合は、以下のようなファイルを作ります。
importpath.pth(拡張子さえ適切であれば、ファイル名は自由です。)
/Users/UserName/Desktop/test/importdir/dirA
このようにパスだけを記載します。
なお、”.pth”ファイルは検索パスに記載されたディレクトリ内であれば参照できるようですが、基本的には書くPython配下の”*/site-packages”に配置する事が推奨されていますので、特別な理由がない限りはここに配置しましょう
まとめ
いかがでしたでしょうか?
今回の記事では、
- 【基礎】 importとは
- 【基礎】 importの方法
- 【応用】 インポート対象の検索パスを追加する方法
について紹介しました。
python学習を進めるにつれ、自作ファイルも作られてくると思います。
そんな時にインポートの方法をマスターしていると便利ですね!