CCXT连接Bybit测试网API认证失败求助(密钥无效)
解决Bybit测试网CCXT API密钥无效问题
针对你遇到的retCode:10003 API密钥无效错误,以下是具体排查和解决步骤:
1. 检查API密钥的权限与配置
- 确认权限匹配:在Bybit测试网生成API时,必须勾选永续合约交易权限(对应代码里的
defaultType: 'swap'),无对应权限会直接触发密钥无效提示。 - 关闭/检查IP白名单:如果API设置了IP白名单,当前运行代码的设备IP不在列表内会导致认证失败。可以暂时关闭白名单测试,或把当前IP添加到白名单中。
- 重新生成密钥:复制密钥时容易出现空格、漏字符等问题,建议重新生成测试网API密钥,手动复制粘贴(避免依赖剪贴板)。
2. 修正CCXT配置细节
- 更新CCXT到最新版:旧版本CCXT对Bybit测试网的支持可能存在bug,执行命令更新:
pip install --upgrade ccxt - 显式指定测试网端点:虽然代码中设置了
testnet: True,但可以手动指定测试网URL确保连接正确:exchange = ccxt.bybit({ 'apiKey': apiKey, 'secret': secret, 'testnet': True, 'options': { 'defaultType': 'swap', 'baseUrl': 'https://api-testnet.bybit.com' # 强制指定测试网地址 } })
3. 调试验证步骤
先测试公共端点确认网络连接正常,再验证私有端点:
import ccxt apiKey = "你的测试网API密钥" secret = "你的测试网密钥" exchange = ccxt.bybit({ 'apiKey': apiKey, 'secret': secret, 'testnet': True, 'options': { 'defaultType': 'swap' } }) # 测试公共端点(无需认证) try: ticker = exchange.fetch_ticker('BTC/USDT:USDT') print(f"BTC/USDT 最新价: {ticker['last']}") except Exception as e: print(f"公共端点连接错误: {e}") # 测试私有端点 try: balance = exchange.fetch_balance() usdt = balance['USDT']['total'] print(f"USDT余额: {usdt}") except ccxt.AuthenticationError as e: print(f"认证错误: {e}")
内容的提问来源于stack exchange,提问作者fra bre




