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选择是 都可以的

接着重新启动然后去运行就可以了

image.png

二号坑:     

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

image.png

踩坑原因: 

路径混淆 —— 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

经过一系列折腾,总算是安装成功了。