【JupyterNotebook】モジュールをインポートする

 

こんにちは。のっくんです。

 

この記事では、Jupyter Notebookで自作のモジュールをインポートして使う方法を紹介します。

 

ネコ
モジュールって何ですかー??
のっくん
コードを記述して、他のプログラムから再利用できるようにしたファイルのことを「モジュール」って言うんだよ。

 

Jupyter Notebookとは

スポンサーリンク

Googleさんで検索すると以下のように出てきます。

 

Jupyter Notebook(ジュピターノートブック)とは、ノートブック形式で段階的にプログラムを実行し、データ分析作業を行える対話型ブラウザ実行環境です。

 

機械学習や画像処理の本では必ずと言っていいほどジュピターノートブックを使っています。

 

実行できるプログラムはPythonですが、ジュピターノートブックの拡張子は「.ipynb」です。

 

ジュピターノートブック(.ipynb)で自分の作ったモジュール(.py)をimportする時に少しつまづいたので、その手順をまとめておきます。

 

ちなみに、通常のPythonのimportについては以下の記事にまとめてあります。

 

https://ymgsapo.com/about-import/

 

ディレクトリ構成

 

コードを書く前に、ディレクトリの構成を確認しておきます。

 

Pycharmのプロジェクトの下にnotebookというディレクトリを作っています。

 

 

test.ipynbからhellomod.pyをインポートしたいと思います。

 

モジュール検索パス

 

インポートする前に、モジュール検索パスを理解する必要があります。

 

6.1.2. モジュール検索パス(原文)

spam という名前のモジュールをインポートするとき、インタープリターはまずその名前のビルトインモジュールを探します。見つからなかった場合は、 spam.pyという名前のファイルを sys.path にあるディレクトリのリストから探します。 sys.path は以下の場所に初期化されます:

  • 入力されたスクリプトのあるディレクトリ (あるいはファイルが指定されなかったときはカレントディレクトリ)。
  • PYTHONPATH (ディレクトリ名のリスト。シェル変数の PATH と同じ構文)。
  • インストールごとのデフォルト。

https://docs.python.jp/3/tutorial/modules.html

 

まぁ色々書いてありますが一言で言うと、

 

sys.pathにあるディレクトリからしかモジュールをインポートできない

 

ってことです。

 

sys.pathって何やねんと思って中身をみて見ると、

 

test.ipynb

 

実行結果

 

一番上を見ると、’/Users/haru/PycharmProjects/exp/notebook’ってありますね。

 

つまりnotebookディレクトリ配下のファイルしか見えてないってことになります。

 

 

このままだとhellomod.pyをインポートすることができないので、以下のコマンドでexp配下のパスを追加しましょう。

 

test.ipynb

 

モジュールのインポート

 

モジュールの中身は以下の通り。

 

hellomod.py

 

引数をプリントするだけのものです。importして実行してみましょう。

 

test.ipynb

 

上手くいけば、Jupyter Notebook上で”done”と表示されます。

 

以上になります。お疲れ様でした。

 

ABOUTこの記事をかいた人

のっくん

理系院卒で大企業の研究所に就職。 趣味はプログラミング、レアジョブ英会話、筋トレ、旅行。 Twitter:@yamagablog