You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

credentials.json与Python文件同目录仍提示找不到该文件如何解决

FileNotFoundError找不到credentials.json文件解决方案

问题根因

使用相对路径读取文件时,Python会基于当前运行脚本的工作目录查找文件,而非脚本文件自身存放的目录。哪怕credentials.json和脚本放在同一个文件夹,只要运行脚本时的工作目录不是该文件夹,就会触发文件不存在报错。

解决方案

  • 方案1:使用绝对路径定位文件(最稳妥,不会受运行目录影响)
    先获取当前脚本的所在绝对目录,再拼接credentials.json的路径,替换原有代码的文件名参数即可,修改后参考代码如下:
import os
import datetime,gspread,random
from oauth2client.service_account import ServiceAccountCredentials
import emailing as em 

scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]

# 获取当前脚本所在的绝对目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接得到credentials.json的完整绝对路径
cred_path = os.path.join(current_dir, 'credentials.json')
creds = ServiceAccountCredentials.from_json_keyfile_name(cred_path, scope)

client = gspread.authorize(creds)

sheet = client.open("finalface").sheet1
  • 方案2:调整运行脚本的工作目录
    先在代码开头添加以下代码打印当前工作目录,确认路径是否和存放credentials.json的文件夹一致:
import os
print(os.getcwd())

如果输出路径不匹配,终端cd到credentials.json所在的文件夹后,再运行Python脚本即可。

  • 方案3:排查文件名/扩展名错误
    Windows系统默认隐藏已知文件扩展名,可能你的文件实际名为credentials.json.txt,仅因为系统隐藏了.txt后缀导致你误认为文件名是credentials.json。打开系统的「显示文件扩展名」设置,确认文件名完全匹配即可。

内容的提问来源于stack exchange,提问作者Emani Nandhitha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:54:04