今回はPythonでパッケージを使用するために必要なimportの方法について、解説していきたいと思います。パッケージは、Pythonのコードが書かれたファイルが複数ある場合や、他の人が作ったコードを再利用するときによく使われます。
パッケージの作り方について教えてほしい
パッケージをimportして使える状態にしたい
そのような方に向けて、この記事では以下の内容について解説していきます!
- 【基礎】importとは
- 【基礎】モジュール、ライブラリ、パッケージとは
- 【実践】パッケージの作り方
- 【実践】パッケージをimportする方法
importはパッケージやモジュールを呼び出して使用するときによく使いますので、使い方についてはよく理解しておきましょう。
※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。
なお、Pythonの記事については、こちらにまとめています。
まずは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言語の習得を目指すなら
ここまでの解説を踏まえ、独学でPython言語を習得しようと考えている人のなかには、
独学で習得できるかな…
途中で挫折したらどうしよう…
と不安な人もいますよね。
実のところ、Pythonといったプログラミング言語の学習途中で挫折する独学者は多くいます。事実、弊社の調査では
- 不明点を聞ける環境になかった
- エラーが解決できなかった
- モチベーションが続かなかった
などの理由から、87.5%が「プログラミング学習で挫折や行き詰まりを感じた」と回答しています。
また、こうした背景もあってか、弊社がプログラミングに興味がある人100名へ実施した別の調査では
- 確実にスキルを身につけられると思ったから
- 独学では不安がある
- 効率よく学べそう
などの理由から、61%が「プログラミングの勉強を始めるならスクールを選ぶ」と回答しています。
加えて、プログラミングスクールの卒業生に「独学ではなくスクールを活用した理由」を聞いたところ「できるだけ短い期間でITエンジニアへの転職や副業に必要なスキルを身につけたかった」という回答も多く寄せられました。
上記から、1人でプログラミングスキルを習得できるか不安な人や短期間でスキルを習得したい人ほど確実性を求め、現役エンジニアといったプロの講師に質問できるプログラミングスクールを利用する傾向にあるのがわかります。
いざ独学でプログラミングを学び始めても、勉強の最中に挫折しまっては学習にかけた時間を悔やむだけでなく「プログラミングスキルを身につけるのって思っていたよりも難しいんだな…」とPython言語の習得自体を諦めかねません。
仮にわからないことを飛ばしながら勉強を進めたとしても、ITエンジニアへの転職や副業での収入獲得を実現できる実践的なスキルが身につかなければ、結局後悔することになります。
そこで、おすすめしたいのが「SAMURAI ENGINEER(侍エンジニア)」です。
料金 | 月分割4.098円~ |
実績 | ・累計指導実績3万5,000名以上 ・受講生の学習完了率98% ・受講生の転職成功率99% |
侍エンジニアをおすすめする最大の理由は「挫折しづらい学習環境」にあります。
先ほど述べたとおり、独学者の多くは自力で不明点やエラーを解決できないためにプログラミング学習を挫折しています。そのため、未経験者が現役エンジニアのようなプロに質問や相談できない状況で、プログラミングスキルを習得するのは非常に難易度が高いといえます。
しかし、侍エンジニアでは
- 現役エンジニア講師によるマンツーマンレッスン
- 現役エンジニアに質問できるオンラインでのQ&Aサービス
- 不安や悩み・勉強の進み具合を相談できる学習コーチ
といったサポート体制を整えているため、学習中に出てきたわからないことや不明点をいつでも相談可能です。「受講生の学習完了率98%」「転職成功率99%」という実績からも、侍エンジニアなら挫折しづらい環境でプログラミング学習を進められるといえます。
また、侍エンジニアではカウンセリングにて受講生一人ひとりの目的をヒアリングしたうえでカリキュラムを作成するため、限られた受講期間で効率的に必要なスキルだけを習得可能です。
最短距離で目的を実現できるようカリキュラムが組まれているため、勉強する順番や内容を誤り非効率に時間や手間を費やす心配もありません。
なぜ侍エンジニアが挫折せずPython言語を習得できるのか気になる人はぜひ公式サイトをご覧ください。
公式サイトで詳細を見るまとめ
この記事ではPythonのモジュールやパッケージの基本、importの仕方について解説しました。importの仕方は1つではないので、使いたい機能によって使い分けていきましょう。
モジュールが集まってパッケージと呼ばれたり、パッケージには__init__.pyが必要だったり、覚えることは多いかもしれません。もし忘れてしまったら、ぜひこの記事を読み返してみてください!
なお、今Pythonを学習している方は以下の記事もどうぞ。
はじめてPythonを使う方でもわかりやすいように、Pythonでできることやその学習法などを中心にまとめています。
復習にも使えると思いますので、ぜひ一度ご覧になってみてくださいね。
【Python 入門完全攻略ガイド】