我编写了一个python脚本,每天将文件上传到我的Google云端硬盘。当我从终端运行脚本时,它完美地工作。但是,当它通过cronjob运行时,它会失败并返回以下错误:
oauth2client.clientsecrets.InvalidClientSecretsError :('错误打开文件',' client_secret.json','没有这样的文件或目录',2)
问题是该文件位于我运行脚本的目录中。
这是我的Cronjob代码:
15 6 * * * python3 /home/pi/directory/file.py
以下是调用client_secret.json文件的脚本:
def main():
try:
import argparse
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
except ImportError:
flags = None
SCOPES = 'https://www.googleapis.com/auth/drive.file'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
creds = tools.run_flow(flow, store, flags) \
if flags else tools.run(flow, store)
DRIVE = build('drive', 'v3', http=creds.authorize(Http()))
任何想法或建议都会很棒!
答案 0 :(得分:1)
您必须使用文件客户端_secret.json的绝对路径。一旦我更新了路径一切正常。
更改: flow = client.flow_from_clientsecrets('client_secret.json',SCOPES)
和
store = file.Storage('storage.json')
到
flow = client.flow_from_clientsecrets('/ path / to / file / client_secret.json',SCOPES)
和
store = file.Storage('/ path / to / file / storage.json')