AI
人工智能相关文章
OpenClaw WSL踩坑记录
今天在windows 11家庭版安装OpenClaw时,踩了不少坑,现在就几个大坑回顾一下。
一号坑:
wsl安装失败分发版Ubuntu22.04总是失败,错误提示:
pnpm : 无法加载文件 C:\Users\28288\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 - pnpm - ~~~~ + CategoryInfo : SecurityError: (:) [],PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
Windows PowerShell,点击右键找到更多,找到以管理员身份运行
输入命令:
set-ExecutionPolicy RemoteSigned
然后回车
选择:输入A选择全是,或者输入Y选择是 都可以的
接着重新启动然后去运行就可以了

二号坑:
Error: Cannot find module '/mnt/c/Users/28288/AppData/Roaming/npm/node_modules/openclaw/openclaw.mjs' code: 'MODULE_NOT_FOUND'

踩坑原因:
路径混淆 —— Windows vs WSL/Linux
WSL 和 Windows 是两个独立的操作系统环境,它们的文件系统、环境变量、用户目录都是隔离的。即使挂载了 /mnt/c/...,也不能保证 Node.js 能正确解析其中的模块依赖,尤其是涉及 .mjs 这种 ES Module 文件时,对路径和权限更敏感。
解决方案:
打开 WSL 终端,在 PowerShell 中输入 wsl 进入。
依次执行以下清理和重装命令:
# 1. 卸载全局包 npm uninstall -g openclaw # 2. 清理缓存 npm cache clean --force # 3. 删除用户级配置文件 rm -rf ~/.openclaw* rm -rf ~/.npm/_cacache # 4. 删除自定义 prefix,让 npm 用默认值 npm config delete prefix # 5. 重新安装 curl -fsSL https://openclaw.ai/install.sh | bash
然后再次安装时依旧报错:
The lobster has molted. Harder shell, sharper claws.
· Upgrade complete
· Running openclaw doctor
node:internal/modules/cjs/loader:1386
throw err;
^
Error: Cannot find module '/mnt/c/Users/28288/AppData/Roaming/npm/node_modules/openclaw/openclaw.mjs'
at Function._resolveFilename (node:internal/modules/cjs/loader:1383:15)
at defaultResolveImpl (node:internal/modules/cjs/loader:1025:19)
at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1030:22)
at Function._load (node:internal/modules/cjs/loader:1192:37)
at TracingChannel.traceSync (node:diagnostics_channel:328:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:237:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
at node:internal/main/run_main_module:36:49 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Node.js v22.22.1
! Doctor failed; skipping plugin updates再次彻底清除 npm 中指向 Windows 的配置,并让 npm 使用 Linux 默认路径。
npm config delete prefix
删除 ~/.npmrc 配置文件中的任何包含 prefix=... 或者 C:\、/mnt/c/ 的行。
重新设置正确的全局路径
npm config set prefix ~/.npm-global
重新安装:
# 再次确保卸载 npm uninstall -g openclaw # 重新安装 npm install -g openclaw@latest
经过一系列折腾,总算是安装成功了。