Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python Gspread Oauth并将凭证文件保存在Gspread文档中指定的目录以外的其他位置_Python_Python 3.x_Google Sheets_Oauth_Gspread - Fatal编程技术网

使用python Gspread Oauth并将凭证文件保存在Gspread文档中指定的目录以外的其他位置

使用python Gspread Oauth并将凭证文件保存在Gspread文档中指定的目录以外的其他位置,python,python-3.x,google-sheets,oauth,gspread,Python,Python 3.x,Google Sheets,Oauth,Gspread,有关身份验证的说明可在此处找到: 身份验证序列中的步骤7说明: “将下载的文件移动到~/.config/gspread/credentials.json。Windows用户应将此文件放置到%APPDATA%\gspread\credentials.json” 有人知道将credentials.json文件保存在其他地方并使用它来授权gpread的方法吗 或者,我考虑过使用shutil.move来获取json文件,将其移动到所需的位置,但需要能够做到这一点,而无需假设python库的位置,或者即使

有关身份验证的说明可在此处找到:

身份验证序列中的步骤7说明: “将下载的文件移动到~/.config/gspread/credentials.json。Windows用户应将此文件放置到%APPDATA%\gspread\credentials.json”

有人知道将credentials.json文件保存在其他地方并使用它来授权gpread的方法吗

或者,我考虑过使用shutil.move来获取json文件,将其移动到所需的位置,但需要能够做到这一点,而无需假设python库的位置,或者即使它位于windows或unix机器上。有什么环境变量可以揭示某些图书馆的位置吗?我可以这样做:

import gspread, os, shutil
loc = gspread.__location__
cred_path = os.path.join(loc, "credentials.json")
if not os.path.isfile(cred_path):
    shutil.move(input("Enter creds path:"), cred_path)

找到了我自己问题的答案。此函数将所有相关环境变量设置为您选择的目录,其中应保存credentials.json文件(以及authorized_user.json文件):


找到了我自己问题的答案。此函数将所有相关环境变量设置为您选择的目录,其中应保存credentials.json文件(以及authorized_user.json文件):

import gspread.auth as ga
def gspread_paths(dir):
    ga.DEFAULT_CONFIG_DIR = dir
    ga.DEFAULT_CREDENTIALS_FILENAME = os.path.join(
        ga.DEFAULT_CONFIG_DIR, 'credentials.json')
    ga.DEFAULT_AUTHORIZED_USER_FILENAME = os.path.join(
        ga.DEFAULT_CONFIG_DIR, 'authorized_user.json')
    ga.DEFAULT_SERVICE_ACCOUNT_FILENAME = os.path.join(
        ga.DEFAULT_CONFIG_DIR, 'service_account.json')
    ga.load_credentials.__defaults__ = (ga.DEFAULT_AUTHORIZED_USER_FILENAME,)
    ga.store_credentials.__defaults__ = (ga.DEFAULT_AUTHORIZED_USER_FILENAME, 'token')