From 2857d8febbaf5cd6153b4f8293decec69e9396db Mon Sep 17 00:00:00 2001 From: hubian <908234780@qq.com> Date: Wed, 8 Apr 2026 19:00:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96Token=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=B9=E5=BC=8F=EF=BC=8C=E6=94=AF=E6=8C=81=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=8F=98=E9=87=8F=E5=92=8C=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 23 ++++++++++++++++++++--- fetch_history.py | 23 +++++++++++++++++++++-- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c73ef33..92fdc05 100644 --- a/README.md +++ b/README.md @@ -15,15 +15,32 @@ pip install -r requirements.txt ## Tushare Token +**必须先设置Token才能运行!** + 需要在 tushare.pro 注册并获取token。 -设置方式: -1. 注册账号:https://tushare.pro/register -2. 获取token后在代码中设置,或设置环境变量: +设置方式(三选一): + +### 方式1:环境变量(推荐) ```bash export TUSHARE_TOKEN=your_token_here +python fetch_history.py ``` +### 方式2:配置文件 +```bash +echo 'your_token_here' > config.txt +python fetch_history.py +``` + +### 方式3:代码中直接设置 +```python +# 编辑 fetch_history.py,在 main() 函数中修改 +pro = setup_tushare(token='your_token_here') +``` + +**注册地址**:https://tushare.pro/register + ## 运行 ```bash diff --git a/fetch_history.py b/fetch_history.py index 81608f0..879e66c 100644 --- a/fetch_history.py +++ b/fetch_history.py @@ -33,8 +33,27 @@ REQUEST_INTERVAL = 0.3 def setup_tushare(token=None): """初始化tushare""" - if token: - ts.set_token(token) + import os + + # 优先级:参数 > 环境变量 > 配置文件 + if not token: + token = os.environ.get('TUSHARE_TOKEN', '') + + if not token: + # 尝试从配置文件读取 + config_file = BASE_DIR / 'config.txt' + if config_file.exists(): + token = config_file.read_text().strip() + + if not token: + print("错误:未设置 Tushare Token!") + print("请通过以下方式之一设置:") + print(" 1. 设置环境变量: export TUSHARE_TOKEN=your_token") + print(" 2. 创建配置文件: echo 'your_token' > config.txt") + print(" 3. 注册地址: https://tushare.pro/register") + raise ValueError("缺少 Tushare Token") + + ts.set_token(token) return ts.pro_api()