O erro de arquivo não encontrado pode ser devido a você ter iniciado o script de diretórios diferentes.
storage = Storage("user_creds.dat")
só encontrará user_creds.dat
se o script for lançado a partir desse diretório, por exemplo,
]$ pwd
~/backup
]$ python script.py
Se você precisar iniciar o script de qualquer lugar, poderá especificar um caminho absoluto para user_creds.dat
. Como alternativa, você pode usar o seguinte para obter o diretório em que o script está localizado:
os.path.dirname(os.path.realpath(__file__))
Você pode então pegar seu objeto Storage com
os.path.join(os.path.dirname(os.path.realpath(__file__)), 'user_creds.dat')