Python ライブラリのインポート

スポンサーリンク

Pythonでのライブラリのインポートの意味や書き方など基本的な事を、実際に動作するサンプルプログラムを用いて簡単に説明します。

スポンサーリンク

ライブラリとは

厳密に言えばライブラリという言葉の定義はないそうで、多分、一般的にはライブラリ=パッケージやモジュールになっていると思います。

パッケージの中にモジュールがあります。
パッケージをインストールしたらモジュールが使えるというようなニュアンスです。

ライブラリは定義はないですが、一般的にはそれらの総称という感じですかね。

モジュールの種類

3種類あります。

  • 標準モジュール
  • サードパーティ製のモジュール
  • 自作したモジュール

モジュールのインストールが必要なのは、2番目の標準じゃないサードパーティ製のモジュールということになります。

モジュールのインポート

基本的なインポートの書き方

以下のようにimport モジュール名と書きます。

import pandas

基本的なインポートでエラーが出る場合の書き方

基本ではエラーがでるモジュールがあります。
なぜエラーが出るかというと簡単に言えば、パッケージの作りが違うからです。

その作りに合わせたインポートは以下のようにfrom パッケージ名 import モジュール名と書きましょう。
パッケージ名を指定する必要があるということです。

from pyti import simple_moving_average

クラスや関数、変数を指定してインポートする書き方

オブジェクト(クラスや関数、変数)を指定するには、以下のようにfrom モジュール名 import オブジェクト名と書きます。
上記のパッケージ名を指定するというのと同じ書き方ですが、意味合いが違います。
まぁ気にしないでいきましょう。

from time import sleep

# システムを1秒間止める
sleep(1)

オブジェクト(クラスや関数、変数)を指定しない場合は、以下のように書く必要があります。

import time

# システムを1秒間止める
time.sleep(1)

複数のオブジェクト(クラスや関数、変数)を指定する

複数のオブジェクト(クラスや関数、変数)を指定するには、以下のようにカンマ区切りでオブジェクト名を指定します。

from time import sleep, localtime

sleep(1)
print(localtime())
# time.struct_time(tm_year=2020, tm_mon=5, tm_mday=23, tm_hour=21, tm_min=0, tm_sec=19, tm_wday=5, tm_yday=144, tm_isdst=0)

クラスや関数、変数を指定せずに全て個別にインポートする書き方

from time import *というようにオブジェクト名のところをアスタリスク(*)にすると読み込みます。

from time import *

sleep(1)
print(localtime())
# time.struct_time(tm_year=2020, tm_mon=5, tm_mday=23, tm_hour=21, tm_min=0, tm_sec=19, tm_wday=5, tm_yday=144, tm_isdst=0)

しかし、この書き方は推奨されていないそうで、さらに私が開発で使っているVisual Studio Codeではインポートを認識せずに、エラーの勧告が表示されて鬱陶しいです。

可能な限り、これは避けましょう。

モジュールやオブジェクトを別名でインポートする書き方

以下のようにimport モジュールやオグジェクト名 as 別名とします。

import numpy  as np
import pandas as pd

from pyti import simple_moving_average as sma

NumpyやPandasはnpとpdとするのが世界共通のようにこのようにインポートしていますので、右にならえしましょう。

また、上記のsimple_moving_averageに長い名前もありますので、smaとした方が綺麗になります。
ちなみに、smaは投資のチャートで使う単純移動平均線のモジュールです。

インポートの順番

システムを作っていると多くのモジュールをインポートすることになりますが、基本的には以下の順番でインポートした方がいいようです。多分、不具合のリスク回避だと思います。

それにその方が、システムの管理もしやすいかと思いますので、出来るだけ従ってください。

  • 標準モジュール
  • サードパーティ製のモジュール
  • 自作したモジュール

以下の感じですね。

import numpy  as np
import pandas as pd

from pyti import simple_moving_average as sma

import mymodule

 

コメント

タイトルとURLをコピーしました