LoginSignup
0
4

More than 3 years have passed since last update.

Google Colaboratoryにて自作モジュールをインポートする

Last updated at Posted at 2021-04-09

概要

Google ColaboratoryでTwitterのBOT制作を勉強していた時に、自作モジュールが読み込めず沼ったので備忘録として残しておきます。


そもそもやりたかったこと


TwitterAPIのアクセストークンを別ファイルとして置いておき、importして使いたい。

ディレクトリ構成
My Drive/
     └ my_projects/
               ├ main.ipynb
               └ config.py

ここでのconfig.pyに、以下のような感じでアクセストークンに入れておきます。

config.py
CONSUMER_KEY = "XXXXXXXXXXXXXXXXXXXX"
CONSUMER_SECRET="XXXXXXXXXXXXXXXXXXXXXXXXXX"
ACCESS_TOKEN="XXXXXXXXXXXXXXXXXXXXXX"
ACCESS_SECRET="XXXXXXXXXXXXXXXXXXXXXX"

手順

config.pyの生成

 Google Colaboratoryで開発するときには基本的に.ipynbでファイルが生成されますが、このままではimportできないみたいです。
 なので、Google Colaboratoryでモジュールを作っていた場合は
  ファイル>ダウンロード>.pyをダウンロード
 ダウンロードしてください。
 その後、先ほどと同じディレクトリにアップロードしてください。

読み込ませる①

 ここからはmain.ipynbに読み込ませていきます。
 importの際にsys.path()を使ってパスを与えてあげます。

main.ipynb

import sys
ROOTPATH ='drive/My Drive/my_projects/'
sys.path.append(ROOTPATH)

import my_projects

 ここではパスを別で設定していますが、ファイルのパスを sys.path() に直接入れてあげても大丈夫です。
 上記のようにフォルダのパスを設定しておくと、そのフォルダ内であれば別のモジュールも読み込めるようになるので便利です。

読み込ませる②

 フォルダのパスまで来たので config.py を読み込ませます。

main.ipynb
from my_projects import config

 上記のようにfrom [フォルダ名] import [ファイル名] で読み込んでくれます。
 今回は各値を以下のように取り出しました。

main.ipynb
CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_SECRET

 これを使って

main.ipynb
twitter = OAuth1Session(CK, CS, AT, ATS)

 みたいにすれば認証できます。

読み込んでくれない時

 どうやら一発で読み込んでくれない時もあるみたいです。
 その時は
  ランタイム>ランタイムを出荷時にリセット
 でGoogleDriveのマウントを外し、もう一度マウントを行うとうまくいくこともあるみたいです。

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4