乐于分享
好东西不私藏

Codex App Windows 桌面版终于来了,我装完就踩坑了(附保姆级完整解决方法并跑通)

Codex App Windows 桌面版终于来了,我装完就踩坑了(附保姆级完整解决方法并跑通)

早上打开 X,看到 OpenAI 的消息:Codex App Windows 桌面版发布了。

等这个消息等了很久。之前 Codex 一直是 CLI 或者 Mac 先行,Windows 用户只能干看着。这次终于轮到我了,到公司第一件事,立马下载安装,满心期待。

下载地址:

https://chatgpt.com/zh-Hans-CN/codex/get-started/

点击download for windows后

进入这个界面,继续点download,然后你会下载到一个文件:

然后点击这个exe进行安装。

然后就报错了。


启动直接报错:EPERM

安装完打开,直接弹出一个 JavaScript 错误:

A JavaScript error occurred in the main processEPERM: operation not permitted, mkdirC:\Users\xxx\.codex\sqlite

Codex App 在尝试创建 .codex\sqlite 目录时,操作被拒绝了。

我一看就明白了问题在哪——我电脑上之前已经装过 Codex CLI,用户目录里早就有一个 .codex 文件夹了。CLI 和 Desktop 都想用这个目录,但目录已经被 CLI 占着,权限不对,Desktop 进不去。


第一步:把 CLI 的目录改个名

解决思路很简单,把两者的数据目录分开。

把原来 CLI 用的目录改名:

C:\Users\你的用户名\.codexC:\Users\你的用户名\.codex_cli

这样 .codex 就空出来给 Desktop 用,.codex_cli 继续给 CLI 用,互不干扰。

改完之后重新启动 Codex App——还是报同样的错。


第二步:清理环境变量

改名没解决,说明还有别的地方在捣乱。

我去查了 CODEX_HOME 环境变量,发现有残留。PowerShell 执行:

[Environment]::SetEnvironmentVariable("CODEX_HOME",$null,"User")

删除 User 级变量成功。

接着尝试删除 Machine 级(系统级)变量,结果报错:

不允许所请求的注册表访问权SecurityException

没有管理员权限改不了系统级环境变量,这条路走到一半。


第三步:管理员权限启动

前两步做完之后,我关掉所有相关的后台程序,然后用管理员权限重新运行 Codex App

这次成功进入首页:

开始构建 / Add project

初始化成功,终于跑起来了。


踩坑总结(第一关:启动)

如果你也在 Windows 上装过 Codex CLI,想再装 Codex Desktop,建议按这个顺序来:

  1. 把 CLI 的 .codex 目录改名为 .codex_cli,保留 .codex 给 Desktop 用
  2. 清理 CODEX_HOME 环境变量(PowerShell 执行 [Environment]::SetEnvironmentVariable("CODEX_HOME",$null,"User")
  3. 关闭所有相关后台程序
  4. 用管理员权限启动 Codex Desktop

现在的目录结构:

C:\Users\你的用户名 ├─ .codex_cli   (Codex CLI 专用) └─ .codex       (Codex Desktop 专用)

启动进去了,以为结束了。没想到,第二关接着来。


进去之后又报错了:SQLite 写入失败

启动成功,进入首页,发送第一条消息,红色弹条出现:

创建任务时出错SqliteError: attempt to write a readonly database

Admin 和沙盒权限的开关也打不开,状态不持久。发送失败之后输入框内容还留着,清不掉。

这一套症状加在一起,根因只有一个:Codex 本地的 SQLite 数据库写入失败

不是代码问题,不是网络问题,是权限问题——Codex 在读写本地状态数据库的时候,目录没有写入权限。Windows 用户名含中文、商店版应用的沙盒路径,都会加重这个问题。


第二关解法:修目录权限

第一步:修复 .codex 目录权限

管理员 PowerShell 执行:

$acct = "$env:USERDOMAIN\$env:USERNAME"attrib -R "$env:USERPROFILE\.codex" /S /Dicacls "$env:USERPROFILE\.codex" /grant:r "$acct:(OI)(CI)F" /T /C

同时处理商店版应用的 LocalState 目录:

$pkg = Get-ChildItem "$env:LOCALAPPDATA\Packages" -Directory | Where-Object Name -like "OpenAI.Codex*" | Select-Object -First 1if ($pkg) {  attrib -R "$($pkg.FullName)\LocalState" /S /D  icacls "$($pkg.FullName)\LocalState" /grant:r "$acct:(OI)(CI)F" /T /C}

注意:命令里必须用英文引号 ",用中文引号 "" 会报”无效参数”。

第二步:把 CODEX_HOME 迁移到英文路径(推荐)

用户名含中文的电脑,建议把数据目录迁到纯英文路径:

mkdir D:\codex-homerobocopy "$env:USERPROFILE\.codex" "D:\codex-home" /E /COPY:DAT /R:1 /W:1setx CODEX_HOME "D:\codex-home"

设置完重启 Codex,旧目录先留着,稳定几天再删。

如果还不行:重置 Codex 本地状态

$pkg = Get-ChildItem "$env:LOCALAPPDATA\Packages" -Directory | Where-Object Name -like "OpenAI.Codex*" | Select-Object -First 1if ($pkg) {  Rename-Item "$($pkg.FullName)\LocalState" "LocalState.bak.$(Get-Date -Format yyyyMMddHHmmss)"}

这步会清掉客户端本地 UI 状态,线程记录会丢,但能彻底解决权限问题。


修复成功的判断标准

做完上面的步骤之后,看这几件事是不是正常了:

  • 不再弹 readonly database 报错
  • 创建任务不再报错
  • Admin / 沙盒开关可以正常打开并持久化
  • 发送成功后输入框正常清空
  • 重启 Codex 后线程和状态恢复正常

全部正常,就算过关了。


一句话总结

Windows 下 Codex 的大多数”创建任务失败 / 权限开关失效 / 弹错”问题,本质是本地 SQLite 写入失败。优先修 ~\.codex 和 OpenAI.Codex*\LocalState 的目录权限,再把 CODEX_HOME 迁移到英文目录,基本能解决。

这两关坑踩完,Codex Desktop 才算真正跑起来。

后面我会对 Codex App Windows 做一次深度测评,看看这个桌面版到底值不值得用。关注我,等更新。

以上觉得有用的话,关注下、点个赞或收藏、转发给你需要的朋友,如果想第一时间收到推送,也可以给我个星标⭐ 谢谢你看我的文章,下次见。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » Codex App Windows 桌面版终于来了,我装完就踩坑了(附保姆级完整解决方法并跑通)

评论 抢沙发

8 + 5 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮