Jupyter正常运行的Binance Testnet API代码在CMD/Anaconda Prompt无数据返回
问题描述
我编写了调用Binance测试网API获取数据的代码,该代码在Jupyter Notebook中可正常运行,但在命令提示符(Command Prompt)或Anaconda Prompt中运行时,无报错信息却无法从API获取数据。我使用的是python-binance包1.0.19,尝试通过Activate命令将命令提示符关联到Anaconda环境后问题仍未解决。
代码示例
from binance.client import Client import pandas as pd import asyncio from binance import AsyncClient, BinanceSocketManager from datetime import datetime, timedelta client = Client(api_key = "...my Testnet api_key...", api_secret = "...my Testnet api_secret", tld = "com", testnet=True) print("Hello..........") client.get_account() print("Hello......123....")
排查与解决思路
- 核对环境版本:在命令行运行
python --version,对比Jupyter中import sys; print(sys.version)的输出,确保两者Python版本一致,且都安装了python-binance 1.0.19(命令行运行pip show python-binance查看版本)。 - 增加异常捕获与输出:原代码中
client.get_account()没有错误处理,命令行可能静默失败,修改代码如下,直接打印错误信息:try: account_data = client.get_account() print(account_data) # 打印返回数据确认结果 except Exception as e: print(f"API调用异常: {e}") - 检查网络连通性:命令行环境可能存在代理或网络限制,尝试运行
curl https://testnet.binance.vision/api/v3/ping,看是否能收到响应{"ping": "pong"},以此确认网络能正常访问Binance测试网。 - 升级/降级python-binance版本:1.0.19可能存在测试网连接的兼容性问题,尝试升级到最新版本(
pip install --upgrade python-binance),或降级到稳定版本后重新测试。 - 验证测试网API密钥:确保使用的是Binance测试网专用的API密钥(而非主网密钥),可重新生成测试网密钥,同时检查密钥是否设置了IP白名单或权限限制。
内容的提问来源于stack exchange,提问作者Minh
相关产品推荐
相关产品推荐

