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

Google Sheets凭证在Replit报错UnknownApiNameOrVersion但IDLE正常

解决Replit环境中Google Sheets API v4无法识别的问题

针对你遇到的googleapiclient.errors.UnknownApiNameOrVersion: name: sheets version: v4错误,以下是可行的解决步骤:

1. 升级google-api-python-client版本

Replit默认安装的客户端库版本可能过旧,旧版本的discovery模块没有包含Sheets v4的API定义。在Replit的Shell中执行以下命令:

pip install --upgrade google-api-python-client

执行完成后重新运行代码,多数情况下能解决版本识别问题。

2. 补全必要依赖包

确保Google API客户端的依赖组件完整,执行以下命令安装缺失的包:

pip install google-auth google-auth-oauthlib google-auth-httplib2

这些包负责身份验证和HTTP请求处理,版本不匹配或缺失会导致API发现过程失败。

3. 替换弃用的身份验证类

你代码中使用的ServiceAccountCredentials已被官方弃用,改用最新的google.oauth2.service_account.Credentials可以避免兼容性问题,修改代码如下:

# 替换原有的ServiceAccountCredentials导入
from google.oauth2.service_account import Credentials

# 在__init__方法中替换凭证生成代码
self.credentials = Credentials.from_service_account_file(self.file, scopes=self.scope)

4. 手动指定发现文档URL(兜底方案)

如果上述方法无效,直接指定Sheets v4的发现文档URL,绕过自动发现的问题:

self.service = build(
    "sheets", 
    "v4", 
    credentials=self.credentials,
    discoveryServiceUrl="https://sheets.googleapis.com/$discovery/rest?version=v4"
)

问题根源

Replit环境的依赖包默认版本通常滞后于本地开发环境,旧版google-api-python-client的discovery文档库未包含Sheets v4的定义;同时,旧的身份验证类在新环境中存在兼容性隐患,加上Replit网络环境可能对自动获取发现文档有一定限制,共同导致了版本识别错误。

内容的提问来源于stack exchange,提问作者Armaan Khaitan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 08:01:24