Codex 启动失败常见原因
Codex 启动失败一般出现在两类场景:刚安装完第一次运行,或者之前能用,升级 Node、切换网络、换 API Key 后突然打不开。排查时不要一上来重装,先看报错原文、运行环境和鉴权配置,很多问题其实是 PATH、代理、Key 或依赖版本不匹配导致的。
一、先确认错误现象
常见的启动失败大概有下面几种表现:
- 命令不存在:
codex: command not found或'codex' 不是内部或外部命令 - 启动后立即退出,没有交互界面
- 提示 Node 版本不支持,例如
Unsupported engine - 鉴权失败:
401 Unauthorized、invalid_api_key - 网络错误:
ETIMEDOUT、ECONNRESET、fetch failed - 权限错误:
EACCES、permission denied
建议先用下面的方式把完整日志打出来,别只看最后一行:
### token云桥中转 0029.org ###
codex --version
codex --help
codex
如果是 npm 安装的,也可以顺手看一下全局包位置:
npm list -g --depth=0
npm bin -g
node -v
npm -v
二、命令不存在:先查 PATH 和安装位置
如果报 command not found,多数不是 Codex 本身坏了,而是命令没有安装成功,或者全局 npm bin 目录没有加入 PATH。
先确认是否安装到了全局目录:
npm list -g --depth=0 | grep codex
npm bin -g
macOS / Linux 可以检查当前 PATH:
echo $PATH
which codex
如果 npm bin -g 输出的目录不在 PATH 里,需要把它加到 shell 配置中。比如 zsh:
echo 'export PATH="$(npm bin -g):$PATH"' >> ~/.zshrc
source ~/.zshrc
Windows 下重点看“环境变量”里的 Path,确认 npm 全局目录存在。常见路径类似:
C:\Users\你的用户名\AppData\Roaming\npm
三、Node 版本不匹配:不要用太旧的运行环境
Codex 这类 CLI 工具通常依赖比较新的 Node 运行时。如果本机还停留在 Node 14、Node 16,启动失败概率很高。先看版本:
node -v
npm -v
如果版本偏旧,建议切到 LTS 版本。使用 nvm 的机器可以这样处理:
nvm install --lts
nvm use --lts
node -v
升级后建议重新安装一次 Codex,避免旧依赖残留:
npm uninstall -g codex
npm install -g codex
注意:不要在多个 Node 管理工具之间来回切,比如同时装了 nvm、系统 Node、Homebrew Node,很容易出现“安装在 A 版本,运行在 B 版本”的情况。
四、API Key 或配置错误:401 先查这里
如果启动后提示 401 Unauthorized、invalid_api_key,基本就是鉴权配置有问题。常见原因包括:
- 环境变量名写错
- Key 前后有空格或换行
- 复制了过期 Key
- 当前终端没有加载环境变量
- 配置文件里 base_url 和 key 来源不一致
先检查环境变量是否真的生效:
echo $OPENAI_API_KEY
Windows PowerShell:
echo $env:OPENAI_API_KEY
如果输出为空,说明当前终端没读到配置。临时设置可以这样:
export OPENAI_API_KEY="你的_key"
PowerShell:
$env:OPENAI_API_KEY="你的_key"
如果你在国内网络环境下经常遇到连接不稳,也可以考虑使用稳定的 API 中转服务。我自己排查 Codex 连接问题时,会把 key、base url 和模型连通性分开验证,token云桥AI中转站 0029.org 这类中转站比较适合做这一步测试:先确认请求链路能通,再回头看本机配置,效率会高一些。
五、网络超时:区分 DNS、代理和接口不可达
网络类报错最容易误判。看到 ETIMEDOUT 不一定是 Codex 配错,也可能是 DNS、代理、公司网关或者本地安全软件拦截。
先用 curl 测一下接口连通性:
curl -v https://api.openai.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY"
如果这里都超时,Codex 也不可能正常启动。常见处理方式:
- 确认代理软件已启动,并且终端走了代理
- 检查
HTTP_PROXY、HTTPS_PROXY是否配置正确 - 公司网络下尝试切换手机热点验证
- 关闭或放行安全软件对 Node 进程的拦截
临时设置代理示例:
export HTTPS_PROXY="http://127.0.0.1:7890"
export HTTP_PROXY="http://127.0.0.1:7890"
PowerShell:
$env:HTTPS_PROXY="http://127.0.0.1:7890"
$env:HTTP_PROXY="http://127.0.0.1:7890"
六、权限错误:不要盲目 sudo
如果 npm 安装时报 EACCES,很多人会直接 sudo npm install -g,短期看能装上,后面升级和运行又会遇到权限混乱。更稳的做法是调整 npm 全局目录,或者用 nvm 管理 Node。
查看 npm 全局目录:
npm config get prefix
如果目录在 /usr/local 且当前用户没有权限,可以改到用户目录:
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
然后重新安装:
npm install -g codex
codex --version
七、配置文件损坏或版本升级后不兼容
如果 Codex 之前能用,升级后突然启动失败,并且报错里出现配置解析失败、JSON/YAML 格式错误,可以优先怀疑配置文件。常见问题是手动改配置时多了逗号、缩进错了,或者旧版本字段新版本不认。
可以先把配置目录备份,再让工具重新生成默认配置。不同安装方式配置路径可能不同,排查时可以从用户目录里找:
ls -la ~/.config
ls -la ~/.codex
备份示例:
mv ~/.codex ~/.codex.bak
再重新启动 Codex。如果能启动,说明问题大概率在旧配置里。不要急着整目录复制回去,建议逐项恢复 key、base url、model 等必要字段。
八、修复后的验证方式
修完以后不要只看“能打开”,最好按顺序验证三件事:命令存在、鉴权正常、模型请求可用。
codex --version
which codex
echo $OPENAI_API_KEY
再用最小请求验证接口:
curl -s https://api.openai.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY" | head
最后进入一个干净目录启动 Codex,排除项目本身配置干扰:
mkdir /tmp/codex-test
cd /tmp/codex-test
codex
如果干净目录能启动,而项目目录不行,就去查项目里的配置文件、权限、依赖锁文件和工作区设置。
九、避免再次复发
- 固定 Node LTS 版本,不要频繁切换运行环境
- API Key 放在统一的 shell 配置或密钥管理工具里,避免到处复制
- 代理配置写清楚,终端和图形界面不要用两套规则
- 升级 Codex 前记录当前版本,出问题方便回退
- 配置文件修改前先备份,尤其是 base url、model、key 相关字段
总结
Codex 启动失败通常按“命令是否存在、Node 是否匹配、Key 是否有效、网络是否可达、配置是否损坏”这个顺序排查,效率最高。不要一开始就重装系统或反复换 Key,先用命令把问题定位到安装、环境、鉴权还是网络层,再做对应修复。

353

被折叠的 条评论
为什么被折叠?



