Files
Claude-Code-Workflow/PACKAGE_NAME_FIX_SUMMARY.md
catlog22 1dfabf6bda fix: resolve CodexLens installation issues by correcting package name and improving local path detection
- Updated package name from `codexlens` to `codex-lens` in all relevant files to ensure consistency with `pyproject.toml`.
- Enhanced `findLocalPackagePath()` to always search for local paths, even when running from `node_modules`.
- Removed fallback logic for PyPI installation in several functions, providing clearer error messages for local installation failures.
- Added detailed documentation on installation steps and error handling for local development packages.
- Introduced a new summary document outlining the issues and fixes related to CodexLens installation.
2026-01-21 15:32:41 +08:00

3.9 KiB
Raw Blame History

Package Name Fix Summary

问题描述

用户在使用 ccw view 界面安装 CodexLens 时遇到错误:

Error: Failed to install codexlens: Using Python 3.12.3 environment at: .codexlens/venv
× No solution found when resolving dependencies:
╰─▶ Because there are no versions of codexlens[semantic] and you require codexlens[semantic], we can conclude that your requirements are unsatisfiable.

根本原因

  1. 包名不一致pyproject.toml 中定义的包名是 codex-lens(带连字符),但代码中尝试安装 codexlens(没有连字符)
  2. 包未发布到 PyPIcodex-lens 是本地开发包,没有发布到 PyPI只能通过本地路径安装
  3. 本地路径查找逻辑问题findLocalPackagePath() 函数在非开发环境(从 node_modules 运行)时会提前返回 null导致找不到本地路径

修复内容

1. 核心文件修复 (ccw/src/tools/codex-lens.ts)

1.1 修改 findLocalPackagePath() 函数

  • 移除 isDevEnvironment() 早期返回逻辑
  • 添加 更多本地路径搜索位置(包括父目录)
  • 总是 尝试查找本地路径,即使从 node_modules 运行

1.2 修改 bootstrapWithUv() 函数

  • 移除 PyPI 安装的 fallback 逻辑
  • 改为 找不到本地路径时直接返回错误,提供清晰的修复指导

1.3 修改 installSemanticWithUv() 函数

  • 移除 PyPI 安装的 fallback 逻辑
  • 改为 找不到本地路径时直接返回错误

1.4 修改 bootstrapVenv() 函数pip fallback

  • 移除 PyPI 安装的 fallback 逻辑
  • 改为 找不到本地路径时抛出错误

1.5 修复包名引用

  • 将所有 codexlens 更改为 codex-lens3 处)

2. 文档和脚本修复

修复以下文件中的包名引用(codexlenscodex-lens

  • ccw/scripts/memory_embedder.py
  • ccw/scripts/README-memory-embedder.md
  • ccw/scripts/QUICK-REFERENCE.md
  • ccw/scripts/IMPLEMENTATION-SUMMARY.md

修复后的行为

安装流程

  1. 查找本地路径

    • 检查 process.cwd()/codex-lens
    • 检查 __dirname/../../../codex-lens(项目根目录)
    • 检查 homedir()/codex-lens
    • 检查 parent(cwd)/codex-lens(新增)
  2. 本地安装(找到路径):

    uv pip install -e /path/to/codex-lens[semantic]
    
  3. 失败并提示(找不到路径):

    Cannot find codex-lens directory for local installation.
    
    codex-lens is a local development package (not published to PyPI) and must be installed from local files.
    
    To fix this:
    1. Ensure the 'codex-lens' directory exists in your project root
    2. Verify pyproject.toml exists in codex-lens directory
    3. Run ccw from the correct working directory
    4. Or manually install: cd codex-lens && pip install -e .[semantic]
    

验证步骤

  1. 确认 codex-lens 目录存在于项目根目录
  2. 确认 codex-lens/pyproject.toml 存在
  3. 从项目根目录运行 ccw
  4. 尝试安装 CodexLens semantic 依赖

正确的手动安装方式

# 从项目根目录
cd D:\Claude_dms3\codex-lens
pip install -e .[semantic]

# 或者使用绝对路径
pip install -e D:\Claude_dms3\codex-lens[semantic]

# GPU 加速CUDA
pip install -e .[semantic-gpu]

# GPU 加速DirectMLWindows
pip install -e .[semantic-directml]

注意事项

  • 不要 使用 pip install codex-lens[semantic](会失败,包未发布到 PyPI
  • 必须 使用 -e 参数进行 editable 安装
  • 必须 从正确的工作目录运行(包含 codex-lens 目录的目录)

影响范围

  • ccw view 界面安装
  • 命令行 UV 安装
  • 命令行 pip fallback 安装
  • 文档和脚本中的安装说明

测试建议

  1. 从全局安装的 ccw 运行npm install -g
  2. 从本地开发目录运行npm link
  3. 从不同的工作目录运行
  4. 测试所有三种 GPU 模式cpu, cuda, directml