所以我有一个我认为是一个功能正常的Python脚本,可以访问存储的Google Oauth Credentials文件。
当我跑步时:
source /METRICS/VIRTUALENVS/google/venv/bin/activate; export LD_LIBRARY_PATH='/usr/lib/oracle/11.2/client64/lib'; /METRICS/GOOGLESTATS/get_report_2.py
它很有名。
在python中有一个块,用于检查存储文件中的凭据:
#get google storage object
storage = Storage('cred_storage.txt')
credentials = storage.get()
#check if credentials are valid If not send to web page for new key.
if not credentials:
flow = OAuth2WebServerFlow(CLIENT_ID, CLIENT_SECRET, OAUTH_SCOPE, REDIRECT_URI)
authorize_url = flow.step1_get_authorize_url()
print 'Go to the following link in your browser: ' + authorize_url
code = raw_input('Enter verification code: ').strip()
credentials = flow.step2_exchange(code)
storage.put(credentials)
mysendmail('Re authentication of credentials necessary')
exit()
一切都很好但是如果我从本地用户crontab运行相同的东西,凭据就会失败,就像凭据文件不可读一样。
我很难理解为什么与CRON运行命令与命令行的区别。
只是为了获取信息,当凭据无法读取时,我会收到“转到URL”消息。
我对凭据文件的权限是0755,所有者是本地crontab的用户。
由于
答案 0 :(得分:1)
好的,这是一个ID-10-T问题。 从命令行移动到cron时忘记设置工作目录。
杜!
向前和向上