在正式开始前,务必检查 pyproject.toml 中的 [project.entry-points."console_scripts"] 是否已正确声明 mytool = "mytool.cli:main"。如果缺少此项配置,即使执行 pip install -e .,命令行工具也无法注册到 shell 环境,后续所有 CLI 功能都将无法正常调用。直接判断标准是:运行 mytool --version 必须返回 v0.4.2,否则项目安装视为失败。

用户打开终端后,第一步应进入项目根目录,执行 pip install -e . 以安装可编辑模式下的依赖。接着输入 mytool --version 验证版本号——必须返回 v0.4.2 才算成功。如果返回的是 v0.3.9 或直接报错 command not found,说明安装路径未添加到 $PATH,或者 pyproject.toml 中的 console_scripts 入口声明有误。这两种情况都很常见,但处理方式完全不同:前者需检查环境变量配置,后者则必须回到配置文件本身进行修正。
第一步:验证项目结构及 CLI 入口点
确认项目根目录下存在 pyproject.toml 文件,然后使用命令 cat pyproject.toml | grep -A 3 "console_scripts" 查看是否包含 mytool = "mytool.cli:main" 这样的键值对。关键点在于:该行不能缺失,格式也必须准确——漏掉引号、缩进不一致都会导致安装后命令不可用。如果发现为空或格式错误,手动修正后再重新安装即可。
第二步:执行本地安装并验证 CLI 可用性
方法一:标准安装路径
在项目根目录下运行 pip install -e .,等待输出显示 Successfully installed mytool-0.4.2。随后执行 mytool --version,必须看到 v0.4.2。这一步是最直接的验证方式。
方法二:隔离环境验证(避免污染)
有时全局环境安装了不同版本或存在路径冲突,建议新建一个临时虚拟环境进行测试。操作很简单:python -m venv /tmp/mytool-test,然后 source /tmp/mytool-test/bin/activate(macOS/Linux)或 /tmp/mytool-test/Scripts/activate(Windows),再返回项目根目录执行 pip install -e .。这一步能彻底排除全局环境干扰。关键点:如果在这个干净环境中仍然报 command not found,那么问题 100% 出在 entry-points 配置上,而非系统环境问题。
第三步:触发初始化并捕获真实错误响应
① 执行 mytool --init,预期输出应为 Config file generated at ./config.yaml。
② 如果返回的是 ERROR: config.yaml not found (code 4003),不必慌张,这说明初始化逻辑未自动创建文件。手动创建一个空文件:touch config.yaml。
③ 再次执行 mytool --init,此时应能成功写入默认配置项。
④ 检查生成的 config.yaml 内容,确认是否包含 env: development 和 log_level: INFO 这两行。若有缺失,说明初始化代码未覆盖全部键值,需要回头检查逻辑。
⑤ 删除 config.yaml,然后用 mytool --init --env=staging 重新运行一次,确保输出中 env 字段的值被正确覆盖为 staging。这一步可验证命令行参数是否真正生效。
