问题描述
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 会直接启动崩溃。
复现步骤
python3.11 -m venv .venv
.venv/bin/pip install -r requirements.txt
.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 一并提交。
问题描述
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 会直接启动崩溃。
复现步骤
python3.11 -m venv .venv.venv/bin/pip install -r requirements.txt.venv/bin/python -m echobot app期望行为
应用应能启动并在 http://127.0.0.1:8000/web 提供服务。
实际行为
启动时立即在导入阶段报错:
实测环境(README 推荐范围内的版本)
SyntaxError,无法启动也就是说,README 明确推荐的 Python 3.11 反而无法运行,只有更高版本 3.12/3.13 才能正常启动。
补充说明
我已准备一个修复方案:把
replace()调用从 f-string 表达式内提取出来,使代码兼容 Python 3.11,将随 PR 一并提交。