Files
StudioLift/skills/yt-download-place/references/troubleshooting.md

69 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 工作区排查
## uv 不识别(按序排查)
1. **刚装完、当前会话不认识**:会话内刷新 PATH——
- PowerShell:`$env:Path = [Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [Environment]::GetEnvironmentVariable("Path","User")`
- Git Bash / zsh:`export PATH="$PATH:$HOME/.local/bin"`
- cmd:重开终端。
2. **试试模块入口**:`python -m uv --version`。可用则后续所有 `uv <子命令>` 都换成 `python -m uv <子命令>`。
3. **用 pip 兜底安装**:`pip install uv` 后回到第 2 条,立即生效(winget/官方脚本方式要等新终端)。
4. **彻底没有 Python/uv**:先装 Python 3.10+(或让 uv 官方脚本一并装好托管 Python),再走第 3 条。
## 网络与镜像(国内环境)
`uv sync` / `uv run` 拉包慢或超时时,临时切换清华镜像:
```powershell
$env:UV_DEFAULT_INDEX = "https://pypi.tuna.tsinghua.edu.cn/simple"
uv sync
```
要持久化则写入工作区 `pyproject.toml`:
```toml
[[tool.uv.index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true
```
## sync / add 相关
- **`No solution found` / 依赖解析冲突**:`dependencies` 里的版本约束互相矛盾(含 `uv add` 追加的包与既有约束冲突)。放宽或修正 `pyproject.toml` 后重试。
- **缺必需包**:`pyproject.toml` 里没有 pandas/openpyxl/playwright/requests(常见于复用已有项目)。工作区根执行 `uv add pandas openpyxl playwright requests` 补齐(幂等)。
- **lock 与 pyproject 不一致**:`uv.lock` 过期,`uv sync` / `uv add` 会自动更新;若报 lock 损坏,删除 `uv.lock` 后重新 `uv sync`。
- **`requires-python` 不满足**:本机 Python 全部低于 3.10。让 uv 自动下载即可:`uv sync -p 3.12`(或省略,uv 自选)。
## .venv 损坏 / 重建
症状:`uv run` 报奇怪的导入错误、DLL 加载失败,或 `.venv` 被移动过。工作区根执行:
```powershell
Remove-Item -Recurse -Force .venv
uv sync
```
## playwright 相关
- **`ModuleNotFoundError: playwright`**(或其他必需包缺失):环境未同步或缺包。工作区根执行 `uv add pandas openpyxl playwright requests` 补齐,或直接用 `uv run python <脚本>`。
- **复用系统 Chrome/Edge 无需 `playwright install`**:只有用工作区内置 Chromium 时才需要 `uv run playwright install chromium`。
- **`playwright install` 下载浏览器慢**:`$env:PLAYWRIGHT_DOWNLOAD_HOST = "https://npmmirror.com/mirrors/playwright"` 后重试。
## 无工作区目录临时跑脚本(PEP 723 兜底)
技能脚本头部带 PEP 723 内联依赖声明(`# /// script ... ///`),在无 `pyproject.toml` 的目录直接 `uv run <脚本>` 也可运行,uv 自动建缓存环境:
- 报「无法解析依赖/找不到脚本」时:确认路径存在且为正斜杠写法;确认脚本头部声明未被删改。
- 需要重建缓存环境:删除 `%LOCALAPPDATA%\uv\cache\environments-v2` 下对应目录(或整体 `uv cache clean`)后重试。
- 批量/长期使用仍建议按 SKILL.md 建正式工作区,避免缓存环境碎片化。
## 无 uv 的最终兜底
uv 完全装不上时,用标准库 venv 手动搭(仅应急,失去 lock 可复现性):
```powershell
python -m venv .venv
.venv\Scripts\python.exe -m pip install pandas openpyxl playwright requests
# 此后所有命令用 .venv\Scripts\python.exe 替代 uv run python
```