Skip to content

修复:f-string 表达式含反斜杠导致 README 推荐的 Python 3.11 无法启动 #20

Description

@cecilia4412

问题描述

README 推荐使用 Python 3.11 及以上版本,但项目在 Python 3.11(推荐版本) 下无法启动。原因是 f-string 的表达式内部包含反斜杠:

echobot/app/services/web_console/live2d/catalog.py 第 130 行:

f"{quote(str(relative_path or '').replace('\\', '/'), safe='/')}"

f-string 表达式内的反斜杠从 Python 3.12(PEP 701)起才被允许。因此按 README 使用推荐的 Python 3.11 会直接启动崩溃。

复现步骤

  1. python3.11 -m venv .venv
  2. .venv/bin/pip install -r requirements.txt
  3. .venv/bin/python -m echobot app

期望行为

应用应能启动并在 http://127.0.0.1:8000/web 提供服务。

实际行为

启动时立即在导入阶段报错:

  File ".../echobot/app/services/web_console/live2d/catalog.py", line 130
    )
    ^
SyntaxError: f-string expression part cannot include a backslash

实测环境(README 推荐范围内的版本)

Python 版本 启动结果
Python 3.11.9 ❌ 报 SyntaxError,无法启动
Python 3.12.14 ✅ 正常启动
Python 3.13.15 ✅ 正常启动

也就是说,README 明确推荐的 Python 3.11 反而无法运行,只有更高版本 3.12/3.13 才能正常启动。

补充说明

我已准备一个修复方案:把 replace() 调用从 f-string 表达式内提取出来,使代码兼容 Python 3.11,将随 PR 一并提交。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions