3.2 KiB
3.2 KiB
运行环境与数据路径(account-manager)
数据落盘位置(当前实现)
get_data_root() / get_user_id() 来自 scripts/jiangchang_skill_core/runtime_env.py(与 jiangchang-platform-kit 同源);scripts/util/runtime_paths.py 在此基础上拼技能子目录。
- 数据根目录:优先
JIANGCHANG_DATA_ROOT;未设置且未走本地注入时,Windows 默认D:\jiangchang-data,其它系统~/.jiangchang-data。 - 用户/工作空间 id:优先
JIANGCHANG_USER_ID;未设置且未走本地注入时为_anon。 - 技能数据目录:
{数据根}/{用户id}/account-manager/- SQLite:
account-manager.db - Profile:
profiles/<平台展示名>/<手机号>/(由get_default_profile_dir生成) - 日志:与其它技能共用用户级目录
{数据根}/{用户id}/logs/jiangchang.log(按日轮转)
- SQLite:
调试:为什么「list 没数据」
- 若终端与网关注入的
JIANGCHANG_*不一致,会写到不同用户目录,库文件不是同一份。 - 设置
JIANGCHANG_ACCOUNT_DEBUG_PATHS=1(1/true/yes/on)后,每次 CLI 子命令前会在 stderr 打印实际根目录、用户 id 与数据库路径(_maybe_print_paths_debug_cli)。
本地 CLI 默认值(runtime_env)
各技能 main.py 在 sys.path 就绪后、import 业务包之前调用 apply_cli_local_defaults()(实现见 jiangchang_skill_core.runtime_env):
- 代码内
CLI_LOCAL_DEV_ENABLED = True时,若当前未设置JIANGCHANG_DATA_ROOT/JIANGCHANG_USER_ID,会注入平台默认数据根与DEFAULT_LOCAL_USER_ID(与 kit 中常量一致)。 - 代码内为
False时,可设环境变量JIANGCHANG_CLI_LOCAL_DEV=1达到同样效果。 - 发版/嵌入宿主前:将各技能 vendored 的
runtime_env.py中CLI_LOCAL_DEV_ENABLED改为False,或完全依赖宿主注入。
日志
实现见 scripts/jiangchang_skill_core/unified_logging.py,util/logging_config.py 仅 re-export。
| 变量 | 作用 |
|---|---|
JIANGCHANG_LOG_LEVEL |
日志级别,默认 INFO |
JIANGCHANG_LOG_TO_STDERR |
设为 1/true 等时,WARNING 及以上同步 stderr |
JIANGCHANG_LOG_FILE |
覆盖主日志文件绝对路径(默认 {数据根}/{用户id}/logs/jiangchang.log) |
JIANGCHANG_LOG_BACKUP_COUNT |
轮转保留份数,默认 30 |
JIANGCHANG_TRACE_ID |
可选;跨技能子进程由父进程注入以串联同一调用链 |
浏览器(open)
open 由 service/browser_service.py 与子进程 service/open_child_runner.py 启动持久化上下文,仅用于人工查看;不做登录态 DOM 检测。
依赖:本机已安装 Chrome 或 Edge;Python 环境需 playwright 包(匠厂共享 python-runtime 已包含)。运行时使用 Playwright channel=chrome|msedge 调系统浏览器,不要执行 playwright install chromium(避免下载自带 Chromium)。
常见问题(简要)
ERROR:需要 playwright Python 包:确认共享 venv 已uv sync;本机安装 Chrome 或 Edge。ERROR:PROFILE_DIR_MISSING:库中该账号profile_dir为空,需检查数据或重新添加账号流程。