Google Colab環境で実行中かを判断して処理を分岐
Google Colabは本当に便利ですよね。
使い方として、まずは手元のローカルで試して、その後にGoogle Colabに持っていって実行する場合が多々あります。
そのときに、Google Colab環境で実行中かを判断して処理を分岐させると、ソースコードを一つにできます。
方法としては、sysモジュールをimportして、sys.modulesの中に'google.colab'があるかどうかの判断でOKだと思います。
下記がサンプルコードになります。
$ cat sample.py
#!/usr/bin/env python3
# coding: UTF-8
import sys
print(type(sys.modules))
moduleList = sys.modules
ENV_COLAB = False
if 'google.colab' in moduleList:
print("google_colab")
ENV_COLAB = True
else:
print("Not google_colab")
if ENV_COLAB:
print("Execute in google_colab")
下記がGoogle Colab環境での実行結果になります。
<class 'dict'> google_colab Execute in google_colab
下記が手元のローカルでの実行結果になります。
$ ./sample.py <class 'dict'> Not google_colab
