Colab で自作モジュールをインポートする二つのポイント【Pythonプログラミング入門】

3 min

Pythonに慣れてきて、自作の関数やクラスを作成できるようになってきたど、「毎回コードセルに入力するのが面倒くさいな、もっと簡単にコードを再利用出来たら良いのに」とか感じてませんか?本記事を最後まで読むと自作の関数やクラスをモジュール化してGoogleドライブに格納してColabからインポート出来るようになります。

通常の Python 開発環境とは異なる Colab 環境ならではの2つのポイントを交えて紹介します。

広告_零号機

全体概要

Google ドライブに自作モジュールを格納し、 Colab ノートブックから import して使用します。

自作モジュールのインポートイメージ

Colab ならではのポイントは以下の2つです

Google ドライブをマウントして自作モジュールを格納する

Colab から自作モジュールにアクセスするために、Colab 実行時の cwd(カレントワーキングディレクトリ)を “Colab Notebooks” ディレクトリに変更する

それでは、詳しく説明していきます。

Google ドライブに自作モジュールを準備する

何はともあれ、まずは自作モジュールを作成します。

自作モジュールを作成する

本記事では、「SQLiteを使用するクラス」をコピーして「SQLite.py」という名前で保存します。このファイルを自作モジュールとして扱います。

モジュールをGoogle ドライブに格納する

下記フォルダ構成になるようにします。

自作モジュールイメージ

作成手順

  1. Google ドライブにてColab Notebooks直下に MyPythonLibrary フォルダを作成
  2. MyPythonLibrary フォルダ直下に DBAccess フォルダを作成
  3. DBAccess フォルダ に先ほど作成した「SQLite.py」をアップロード
  4. DBAccess フォルダに「__init__.py」という名前の中身が空のファイルを作成してアップロード

「__init__.py」というファイルを準備することで DBAccess を package として扱えます。

これで自作モジュールの準備が完了です。

Colab のノートブックを作成して実行する

まずは、Colabで新しいノートブックを作成します。

実際に動かしてみる

本記事では下記流れで実行します。

  1. Google ドライブのマウント
  2. ワーキングディレクトリをColab Notebooksに変更
  3. 自作モジュールのインポート
  4. 自作モジュールの使用

1. Google ドライブのマウント

Colab にて下記コードを実行して Google ドライブをマウントします。

# Googleドライブのマウント
from google.colab import drive
drive.mount('/content/drive')

2. ワーキングディレクトリをColab Notebooksに変更

Colabにてコードセルを追加して下記コードを実行します。

import os
print("カレントワーキングディレクトリは[" + os.getcwd() + "]です")
_colab_dir = "/content/drive/MyDrive/Colab Notebooks"
os.chdir(_colab_dir)
print("カレントワーキングディレクトリは[" + os.getcwd() + "]です")

os.chdir でワーキングディレクトリを変更することができます。

※ワーキングディレクトリの概念については下記をご参考ください。

3. 自作モジュールのインポート

Colabにてコードセルを追加して下記コードを実行します。

from MyPythonLibrary.DBAccess import SQLite

カレントワーキングディレクトリの MyPythonLibrary 配下の DBAccess パッケージから SQLite モジュールをインポートしています。

4. 自作モジュールの使用

Colab にてコードセルを追加して下記コードを実行します。

自作モジュール「SQLite」が使用できます。

test = SQLite.Sqlite3Access("test2")
test.db_name

# select文を作成
_sql = """\
select * 
from testtable
"""

test.printSelect(_sql)

【ご参考】その他の自作モジュールサンプル

実行中のオブジェクト情報を取得するモジュール

データ分析系サンプルコード

おわりに

本記事では、Colab で自作モジュールをインポートしてみました。

Linuxのコマンド操作について知っていると理解がより深まると思いますので
Linuxでよく使うコマンドをご参考頂ければと思います。

ご参考になりましたらtwitterをフォローしてSNSでシェアして頂ければ幸いです。

【付録】さらに理解を深めたい方たちへのおすすめ本

ゼロから学ぶPythonプログラミング Google Colaboratoryでらくらく導入 (KS情報科学専門書)

コードの再利用を進めるためにはオブジェクト指向の理解が必須です。
ちなみに、私はこの本から始めました。

さらに理解を深めるためには、デザインパターンを知る必要があります。
辞書としておすすめです。手元に置いておくといざという時に便利です。

【付録】演習

理解を深めるためには、実際に動かしてみるが一番です。

下記テーマを参考に、色々と動かしてみてはいかがでしょうか?

  1. データを登録したり、テーブルを作成したりしてみよう。
  2. 今回使用したモジュールを修正して、処理時間を小数第三位までのみを表示するよにしてみよう。
  3. 自分独自のクラスを作成してインポートしてみよう。
広告_零号機-エリア2
kewton

kewton

大学院卒業後、某大手SIerで10年以上SEとして従事。
社会人3年目までに基本情報・応用情報技術者、データベーススペシャリスト、簿記3級・2級を取得。
基幹系システム・IoTシステム開発のプロジェクト経験多数。AI活用システムの企画・プロト開発経験あり。
強みは、プロマネだけでなく自身で開発も実施してきたこと。
【扱える言語】
C#、java、python、javascript、Excel VBA
【扱えるDB】
oracle、sql server、postgreSQL、mongoDB

FOLLOW

関連記事

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA