2021年6月19日土曜日

Google Colaboratoryでのpythonファイル(.py)の利用について

 Google Colaboratoryはpythonを動かすのに便利な環境ですが、Jupyterの環境ですのでJupyterファイル(.ipynb)を動かすことになります。クラスやライブラリを作成してpythonファイル(.py)にしたときに、取り込みをできるようにしていきます。

(1) pythonファイルを用意する

今回は、下記のような2点を与えてその2点間距離と中点を求めるクラスのプログラムを作成してあるとします。これを自分のPCで「PointDrive.py」として保存して下さい(Colab上でやるのではなく、自分のローカルPC上でやる)。

[PointDrive.py]

(2) pythonファイル(PointDrive.py)をGoogle Driveの指定場所にアップロード

作成したPointDrive.pyをGoogle Drive上の決められた場所にアップロードします。

(3) Google ColaboratoryでJupyterファイルを開き、PointDrive.pyを利用する
Colab上でJupyterファイルを開きます。Jupyterファイルの保存場所はどこでも良いです。
(i) Google Driveをマウント

from google.colab import drive
drive.mount('/content/drive')

最初マウントを許可するための認証が入るかもしれません。

マウントができると、Jupyter上からDriveのファイルが見えます。

(ii) PointDrive.pyのパスを設定
PointDrive.pyが入っているディレクトリ(今回の例ではlibrary)を右クリックして、Copy pathをクリックします。そのパスを使って、下記のようにパスの設定をします。パスを設定後、PointDriveをインポートしてmdlとして使えるようにしています。

import sys
sys.path.append('/content/drive/MyDrive/public/python/library')
import PointDrive as mdl

(4) PointDriveクラスのインスタンスを作成して、実行する。

次のように座標を2つ与えてインスタンスを生成します。

x1 = [5, 7]
x2 = [2, 3]
p = mdl.PointDrive(x1,x2)

print('Distance = {0}, MidPoint = {1}'.format(p.get_distance(), p.get_midpoint()))

このように、クラスを利用して実行ができました。

main全体のコード


2021/08/25 追記
pythonファイルでクラスが書いてあるファイルにメインの呼び出しが書いてあるときは、もっと簡単に実行ができます。ファイルにメインの呼び出しがあるとは、ここを参考にして下さい。

このように (1) Google Driveをマウントする。(2) pythonコマンドでファイルを実行する。この2段階で実行できます。ファイルのフルパスを得る必要がありますが、それができれば簡単です。

その他の注意
Google Colab上で入力や結果でcsvを使う場合、これもGoogle Drive上でフルパスで指定しなければならず、意外に面倒です。

0 件のコメント:

コメントを投稿