スライドショー

はじめてのPython!パッケージをimportする方法をやさしく解説!

今回はPythonでパッケージを使用するために必要なimportの方法について、解説していきたいと思います。パッケージは、Pythonのコードが書かれたファイルが複数ある場合や、他の人が作ったコードを再利用するときによく使われます。

そもそもimportって何?
パッケージの作り方について教えてほしい
パッケージをimportして使える状態にしたい

そのような方に向けて、この記事では以下の内容について解説していきます!

  • 【基礎】importとは
  • 【基礎】モジュール、ライブラリ、パッケージとは
  • 【実践】パッケージの作り方
  • 【実践】パッケージをimportする方法


importはパッケージやモジュールを呼び出して使用するときによく使いますので、使い方についてはよく理解しておきましょう。

※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。

まずはimportについて理解しよう!

importとは

importとは、Pythonで書かれたコードを再利用するためにはに使用します。importはソースファイルの先頭に以下のように記述します。

import パッケージ

これからimport出来るファイルの作成と、importのさまざまな方法について見ていきましょう!

モジュール、ライブラリ、パッケージとは

import出来るファイルには、

  • モジュール
  • ライブラリ
  • パッケージ

など、さまざまな呼ばれ方をするものがあります。モジュールとは、Pythonのファイル(.py)の事です。Pythonである程度の長いプログラムを書く場合などは、コマンドラインではなく.pyファイルに実行したい内容を保存します。

そしてその保存された.pyファイルは、他のPythonのプログラムからimportで呼び出して使うことも出来ます。これをモジュールと呼びます。また、複数のモジュールで構成されたものはパッケージと呼ばれます。

科学技術計算でよく使われるnumpyなどはすべてパッケージという形で配布されています。モジュールやパッケージは、使うとメンテナンス性が高くなり、管理がとても楽になります。

また、自分以外の開発者に同じ機能を使ってもらう場合は、機能の仕組みを知らなくても簡単に使ってもらうことが出来ます。ちなみにPythonではライブラリという言葉の定義は(私の知る限り)曖昧で、パッケージに近いものだと考えてOKだと思われます。

【まとめ】

  • モジュールとはPythonのソースファイルのこと
  • パッケージは複数のモジュールで構成されたもの
  • ライブラリはそれらを組み合わせた意味として使うこともある

パッケージの作り方

ここからは、実際に簡単なパッケージを作ってみましょう。今回はmod1.pyとmod2.pyというファイルを作り、これらを一つのパッケージとして作ってみましょう。mod1.pyはこのようになっています。

mod1.py

def mod1func():
    print("This is mod1.")

続いてmod2.pyはこのようになっています。

mod2.py

def mod2func():
    print("This is mod2.")

これらをmodsampleという名前の一つのフォルダにまとめましょう。今の構成はこのようになっています。

modsample
├── mod1.py
└── mod2.py
 
0 directories, 2 files

モジュールをまとめることはできましたね。

しかし、これではまだパッケージとして認識されません。Pythonにパッケージだということを伝えるためには「__init__.py」というファイルを作らなければなりません。この__init__.pyの中身は空でも問題ありません。

しかし、この__init__.pyにimportしておきたいファイルを相対パスを使って書くことで、複数のファイルを一度にimportさせることも出来ます。

from . import mod1
from . import mod2

と書くと、ひとつ下にある複数のモジュールを扱うことが出来るようになります。__init__.pyを追加した今の構成はこのようになっています。

modsample
├── __init__.py
├── mod1.py
└── mod2.py
 
0 directories, 3 files

これでパッケージは完成しました。この後はいろいろな方法でこのパッケージを呼び出してみましょう

パッケージをimportする方法

先程作ったパッケージを使うためには、importという作業をしなければなりません。これからのサンプルコードは対話モードのPythonで実行しても問題ありません。

しかし、modsampleという先程作ったパッケージは、対話モードのPythonを実行する場所においておきましょう。まずはパッケージ全体を読み込んでみましょう。こちらのサンプルコードを見てみてください。

import modsample

これだけで、先程作ったパッケージがimport出来ました。importの基本はこの形になるので覚えておきましょう。

これでパッケージ全体(modsampleディレクトリ以下全て)を読み込むことができましたが、あまりに膨大なコードを含むパッケージでは実行速度にも支障が出てきてしまいます。そこで、次は本当に使いたい一部の機能だけを読み込んでみましょう

一部の機能だけをimportする方法

先程はパッケージ全体を読み込んでみました。今回はmodsampleのパッケージから、一部のmod1.pyだけを読み込んでみましょう。こちらのサンプルコードをご覧ください。

from modsample import mod1
mod1.mod1func()

importの仕方が先程と違うことに気をつけてください。

実行結果

This is mod1.

ここでは、modsampleというパッケージから、mod1というモジュールを選んでimportすることが出来ました。

新しく名前をつけてimportする方法

次はimportするときに名前を変えてimportしてみましょう

from modsample import mod1 as mymod
mymod.mod1func()

ここでは先程のimportに、「as」が追加されていることに注意しましょう。これで「mymod」という名前でmod1funcを実行することが出来ました。

実行結果

This is mod1.

この形でのimportは、numpyなどのパッケージを使うときによく見られるので覚えておきましょう!なお、import asの使い方については、以下の記事でも解説しています!

【Python入門】import・asの使い方をわかりやすく解説
更新日 : 2018年6月30日

まとめ

この記事ではPythonのモジュールやパッケージの基本、importの仕方について解説しました。importの仕方は1つではないので、使いたい機能によって使い分けていきましょう。

モジュールが集まってパッケージと呼ばれたり、パッケージには__init__.pyが必要だったり、覚えることは多いかもしれません。もし忘れてしまったら、ぜひこの記事を読み返してみてください!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

Kotono

Kotono

イタリア在住15年目の22歳です。イタリアの大学で情報科学&応用数学を学んでいます。主にJavaScriptやPythonについての記事を書いたりしています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説