SuperAPI AI 工具集

cross-platform-paths

通用与其它

查看项目

更新于 10-16 00:32

技能介绍

该技能用于微软 vscode-python-environments 扩展中处理跨平台路径问题。其用途是避免 Windows、macOS、Linux 间路径处理差异引发的缺陷,因为路径错误是该扩展的首要问题来源。

核心规则:不要用 / 拼接路径,应使用 path.join();比较路径时用 path.resolve() 而非 path.normalize()(后者在 Windows 上保留相对路径),比较时应两侧都调用 resolve();处理 VS Code 路径时用 Uri.file().fsPath,并比较 fsPath 与 fsPath。

平台特有注意点:Windows 涉及盘符、反斜杠、大小写不敏感、超过 260 字符长路径、映射驱动器、pyenv-win 使用 pyenv.bat、Poetry 缓存位于 %LOCALAPPDATA%\pypoetry\Cache\virtualenvs、UNC 路径格式等;macOS 涉及文件系统大小写敏感性、Homebrew 符号链接链、Poetry 缓存路径、XCode Python 与命令行工具 Python 差异;Linux 路径大小写敏感、/bin 可能是符号链接、pipenv 的 XDG 目录、Poetry 缓存位置、点号前缀隐藏文件。

常见模式包括:用 os.homedir() 获取主目录,用 path.join() 构造路径;按平台选择可执行文件名(如 python.exe 与 python、activate.bat 与 activate、pyenv.bat 与 pyenv);用 normalizePath() 生成映射键与比较但保留原始路径用于显示;处理 Uri|string 联合类型时用 instanceof 判断;用 fs.existsSync 或 fsPromises.access 检查文件;Shell 命令中路径要加引号,Git Bash 下将反斜杠替换为斜杠。

测试时应在 Windows(cmd、PowerShell、Git Bash)、macOS(zsh、bash)、Linux(bash、fish)上验证,并重点关注含空格路径、含 Unicode 路径、超长路径及含 $、&、(、) 等特殊字符的路径。