💡 知识卡片
原始会话经 LLM 提炼后的结构化知识。比原始会话更好读、更好搜。
问答
Python 脚本 GBK 编码报错
问题:在 Windows 上运行 Python 脚本 print 含 emoji(如 ✅ \u2705)时抛出 UnicodeEncodeError: 'gbk' codec can't encode character,exit code 1
方案:Windows 控制台默认 GBK 编码无法输出 emoji/非 GBK 字符。解决方式:1) 把脚本中的 emoji 替换为 ASCII 标记(如 ok / + / -);2) 或在脚本开头设置 sys.stdout.reconfigure(encoding='utf-8');3) 或运行时设置环境变量 PYTHONIOENCODING=utf-8。
问答
Python 脚本 GBK 编码报错
问题:Windows 下运行 Python 脚本打印 ✅ 等 Unicode 符号时抛出 UnicodeEncodeError: 'gbk' codec can't encode character '\u2705',进程以 exit code 1 退出
方案:避免在 print 中使用 emoji/特殊 Unicode 符号,改用 ASCII 标记(如 + / - / ok);或显式设置标准输出编码为 UTF-8(如 sys.stdout.reconfigure(encoding='utf-8') 或设置环境变量 PYTHONIOENCODING=utf-8)
问答
Python脚本中文字符串语法错误
问题:在 Windows 下用 python-pptx 编写 PPT 生成脚本时,多次报 SyntaxError: invalid syntax. Perhaps you forgot a comma?,报错位置均为含中文的字符串行(如 "需要 1"、"增值税和个税联动"等),且终端输出中文乱码。
方案:报错根因是字符串中混用了中文全角引号(“ ”)或未转义的引号,导致 Python 解析器把字符串提前截断。逐处检查报错行号(140、153、589 行),将中文全角引号替换为转义后的半角引号(\")或改用单引号包裹,确保每个字符串字面量引号成对闭合;修改后重新运行脚本即可通过。终端乱码是 Windows 控制台 GBK 编码问题,不影响脚本执行。
问答
AKShare免费筛查个股风险
问题:买入前需要批量筛查候选股是否有立案、ST、资金占用、违规担保、安全事故、业绩预亏等黑天鹅风险,但不想购买 Tushare 等付费数据源。
方案:用 AKShare(pip install akshare,1.19.1 版)调用东方财富「公告大全-个股」接口,按公告标题关键词匹配风险。关键参数:时间窗口必须设为近 400 天(190 天会漏掉 9 个月前的立案公告)。关键词需用精确短语并剔除常规披露(如“非经营性资金占用情况汇总表”“股票交易异常波动公告”“股权质押”),否则会大量误报甚至全部排除。脚本示例:python risk_scan7.py 600363 002121 001203,输出控制台明细 + xlsx 汇总 + JSON 结构化结果。
问答
DSH会话同步watcher无日志排查
问题:dsh_watcher 进程在运行,但 dsh_watcher.admin.out.log / .err.log 均为 0 字节,没有推送日志,怀疑进程未正常启动或未执行推送。
方案:1) 确认日志路径为 D:\nas-data\logs\dsh_watcher.<employee>.log(logger 名为 dsh_watcher:<employee>);2) 检查启动参数:--employee、--nas-url、--token(或 .secrets.json 中的 sync_token,缺失会直接 sys.exit(1));3) 确认 --dsh-root 路径存在,否则只告警不推送;4) 用 --once 参数手动跑一次,观察 push_existing 是否输出“扫描现有会话”“pushed <sid>”“初始化推送完成”等日志,以区分是启动失败还是仅等待新事件。
问答
Python subprocess 读取输出 GBK 解码报错
问题:在中文 Windows 上运行 monitor.py 时,subprocess 的 _readerthread 抛出 UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 769: illegal multibyte sequence,导致读取子进程输出失败。
方案:在 subprocess 调用中显式指定编码,避免使用系统默认 GBK:subprocess.run(..., encoding='utf-8', errors='replace'),或传 text=True 时配合 encoding='utf-8';也可设置环境变量 PYTHONIOENCODING=utf-8 或 chcp 65001 切换控制台代码页。
问答
Python脚本GBK编码emoji报错
问题:Windows下Python脚本print含emoji字符时出现GBK codec编码错误
方案:移除print语句中的emoji字符,或改用纯ASCII/中文输出;根本原因是Windows控制台默认GBK编码无法编码emoji
问答
monitor.py 多实例进程识别修复
问题:在 monitor.py 中新增 dsh_watcher 的第二个实例(--employee ehong001)后,原 is_running 判断只匹配 'dsh_watcher.py' 和 '--rag',无法区分 alice 与 ehong001 两个实例,导致状态检测错误。
方案:1) 在服务列表中新增 name 为 dsh_watcher_ehong001 的条目,cmd 中指定 --employee ehong001 及对应 nas-url/token/web-url/--daemon/--interval 30/--rag;2) 修改 is_running 的 match_args 分支,按 name 区分:dsh_watcher 类需同时匹配 'dsh_watcher.py' 与 '--rag',并进一步用 '--employee' 后的参数值区分实例;3) 注意 Python 中 `('--employee', 'alice' in out)` 是元组而非布尔表达式,应写成 `'--employee' in out and 'alice' in out`。