'Test if notebook is running on Google Colab

How can I test if my notebook is running on Google Colab?

I need this test as obtaining / unzipping my training data is different if running on my laptop or on Colab.



Solution 1:[1]

For environments using ipython

If you are sure that the script will be run using ipython which is the most typical usage, there is also the possibility to check the ipython interpreter used. I think it is a little bit more clear and you don't have to import any module.

if 'google.colab' in str(get_ipython()):
  print('Running on CoLab')
else:
  print('Not running on CoLab')

If you need to do it multiple times you might want to assign a variable so you don't have to repeat the str(get_ipython()).

RunningInCOLAB = 'google.colab' in str(get_ipython())

RunningInCOLAB is True if run in a Google Colab notebook.

For environments not using ipython

In this case you have to check ipython is used first, assuming that COLab will always use ipython.

RunningInCOLAB = 'google.colab' in str(get_ipython()) if hasattr(__builtins__,'__IPYTHON__') else False

Solution 2:[2]

Try importing google.colab

try:
  import google.colab
  IN_COLAB = True
except:
  IN_COLAB = False

Or just check if it's in sys.modules

import sys
IN_COLAB = 'google.colab' in sys.modules

Solution 3:[3]

you can check environment variable like this:

import os
if 'COLAB_GPU' in os.environ:
   print("I'm running on Colab")

actually you can print out os.environ to check what's associated with colab and then check the key

Solution 4:[4]

In a %%bash cell, use:

%%bash
[[ ! -e /colabtools ]] && exit  # Continue only if running on Google Colab

# Do Colab-only stuff here

Or in Python equivalence

import os
if os.path.exists('/colabtools'):
  # do stuff

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2
Solution 3
Solution 4 korakot