Python连接Binance Spot Testnet API失败,报API Secret缺失错误求助
解决Binance测试网API Secret缺失的AssertionError
错误根源
报错AssertionError: API Secret required for private endpoints本质是代码未正确读取到API密钥,导致api_secret为None。调用get_account()这类需要签名的私有接口时,必然触发断言失败。
解决步骤
先验证环境变量是否生效
打开运行代码的终端,直接打印环境变量:- Windows CMD:
echo %KEY% echo %SECRET% - Windows PowerShell:
$env:KEY $env:SECRET
如果没有输出正确密钥,说明环境变量未设置好,临时设置方式:
- CMD:
set KEY=你的Binance测试网API_KEY set SECRET=你的Binance测试网API_SECRET - PowerShell:
$env:KEY="你的Binance测试网API_KEY" $env:SECRET="你的Binance测试网API_SECRET"
设置完成后重新运行代码即可(注意:该临时设置仅在当前终端会话有效)。
- Windows CMD:
测试阶段临时替代方案
若只是测试不想折腾环境变量,可直接在代码中硬编码密钥(仅限测试,正式上线绝对禁止):import ccxt import os from binance.client import Client # 直接赋值测试网密钥 api_key = "你的Binance测试网API_KEY" api_secret = "你的Binance测试网API_SECRET" client = Client(api_key, api_secret, testnet=True) # 用testnet参数更规范 print(client.get_account())确认密钥正确性
- 确保使用的是Binance Spot Testnet的密钥,而非主网密钥
- 登录Binance测试网后台,检查密钥是否开启了「读取账户信息」权限
代码优化点
原代码手动修改API_URL可替换为官方推荐的testnet=True参数,初始化Client时直接指定:
client = Client(api_key, api_secret, testnet=True)
这样更不易出错,也符合库的规范用法。
内容的提问来源于stack exchange,提问作者Umemmut
相关产品推荐
相关产品推荐

