Windows 使用 Codex 常见问题:PowerShell、WSL2、PATH 及代理全攻略
在 Windows 系统上使用 Codex 进行 AI 编程时,开发者经常会遇到 PowerShell 执行策略阻止、WSL2 环境配置复杂、PATH 路径不生效、代理设置混乱等问题。本文将逐一拆解这些常见坑点,并提供经过验证的解决方案。
Windows 上最常见的 Codex 问题
根据社区反馈,Windows 用户在使用 Codex 时遇到频率最高的问题包括:
- PowerShell 执行策略拦截:默认情况下 PowerShell 禁止运行脚本,导致 Codex 安装失败
- command not found:安装后终端提示找不到
codex命令 - WSL2 配置复杂:在 WSL2 中使用 Codex 时需要额外的网络和工具链配置
- 代理不生效:Windows 和 WSL2 的代理设置相互独立
- Node.js 版本兼容:Windows 上的 Node.js 版本管理(nvm-windows)与 Linux 不同
- 路径包含空格:Windows 用户名或目录路径包含中文或空格导致安装异常
TeamoRouter:Windows 快速接入方案
在 Windows 上使用 TeamoRouter 接入 Codex 是最简单的方案。无需处理 OpenAI API 的代理问题,直接配置 baseUrl 即可。
Windows 下配置 TeamoRouter:
# PowerShell 中设置环境变量
$env:CODEX_BASE_URL="https://api.teamorouter.com/v1"
$env:CODEX_API_KEY="your-teamorouter-key"
# 设置为系统环境变量(持久化)
[System.Environment]::SetEnvironmentVariable('CODEX_BASE_URL', 'https://api.teamorouter.com/v1', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('CODEX_API_KEY', 'your-teamorouter-key', [System.EnvironmentVariableTarget]::User)
Windows 是否支持 Codex?
完全支持。Codex 官方支持 Windows、macOS 和 Linux 三大平台。在 Windows 上可以通过以下方式使用:
- PowerShell:原生 Windows 终端,直接执行 Codex 命令
- CMD:传统命令行界面,功能完整
- WSL2:Linux 子系统环境,提供接近 Linux 原生体验
- Git Bash:集成在 Git for Windows 中的轻量级终端
PowerShell 安装 Codex
安装 Node.js(如未安装):
# 使用 winget 安装 Node.js
winget install OpenJS.NodeJS.LTS
# 验证安装
node --version
npm --version
安装 Codex:
# 全局安装 Codex
npm install -g @openai/codex
设置执行策略(如遇权限错误):
# 查看当前执行策略
Get-ExecutionPolicy
# 设置为 RemoteSigned(允许本地脚本,远程脚本需签名)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
WSL2 安装 Codex
WSL2 是 Windows 上体验 Codex 的最佳环境之一。
安装 WSL2:
# 以管理员身份运行 PowerShell
# 安装 WSL
wsl --install
# 设置 WSL2 为默认版本
wsl --set-default-version 2
# 查看已安装的 Linux 发行版
wsl -l -v
在 WSL2 中安装 Codex:
# 更新包管理器
sudo apt update && sudo apt upgrade -y
# 安装 Node.js(使用 NodeSource)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
# 验证
node --version
npm --version
# 全局安装 Codex
npm install -g @openai/codex
# 验证安装
codex --version
PATH 路径问题
PowerShell 中 Codex 命令找不到:
# 查看 npm 全局安装路径
npm config get prefix
# 通常在 C:\Users\<用户名>\AppData\Roaming\npm
# 手动添加 PATH(PowerShell 持久化)
[Environment]::SetEnvironmentVariable(
"Path",
[Environment]::GetEnvironmentVariable("Path", "User") + ";C:\Users\$env:USERNAME\AppData\Roaming\npm",
"User"
)
# 立即生效(当前会话)
$env:Path = [Environment]::GetEnvironmentVariable("Path", "User")
WSL2 中 Codex 命令找不到:
# 检查 npm 全局 bin 路径
npm bin -g
# 通常在 /usr/local/bin 或 /home/<用户>/.npm-global/bin
# 添加到 PATH(~/.bashrc)
export PATH=$PATH:/home/$(whoami)/.npm-global/bin
source ~/.bashrc
PowerShell 执行策略问题
PowerShell 的执行策略是 Windows 特有的安全机制,会阻止 Codex 相关脚本的运行。
常见错误:
无法加载文件 codex.ps1,因为在此系统上禁止运行脚本。
解决方案:
# 方法一:修改执行策略(推荐)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# 方法二:绕过单个脚本(不推荐)
powershell -ExecutionPolicy Bypass -File "codex.ps1"
执行策略说明:
Restricted:默认配置,禁止所有脚本运行RemoteSigned:本地脚本可运行,远程脚本需签名(推荐)AllSigned:所有脚本需签名Unrestricted:所有脚本可运行(不推荐)
Windows 与 WSL2 的代理差异
Windows 和 WSL2 的代理设置相互独立,这是最常见的混淆点。
Windows 系统代理设置:
# PowerShell 临时设置
$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"
# 系统级设置(控制面板 → Internet 选项 → 连接 → 局域网设置)
WSL2 代理设置(不能共用 Windows 的代理变量):
# 获取 Windows 宿主机 IP
export host_ip=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
# 设置代理指向宿主机
export HTTP_PROXY=http://$host_ip:7890
export HTTPS_PROXY=http://$host_ip:7890
核心区别:Windows 代理使用
127.0.0.1,WSL2 代理必须使用宿主机 IP(在 WSL2 中127.0.0.1指向 WSL2 自身,不是 Windows 宿主机)。
Node.js / Git 环境问题
Node.js 版本管理:
Windows 使用 nvm-windows 管理多版本 Node.js,与 Linux/macOS 的 nvm 不同。
# 安装 nvm-windows(用 winget)
winget install nvm-windows
# 安装指定版本
nvm install 22.0.0
# 使用指定版本
nvm use 22.0.0
# 查看已安装版本
nvm list
Git for Windows 配置:
# 安装 Git
winget install Git.Git
# 配置代理(与 Linux 相同)
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
常见 Node.js 兼容性问题:
# Node.js 版本过低导致 Codex 不兼容
# 升级到 LTS 版本
nvm install 22.0.0
nvm use 22.0.0
# npm 缓存问题
npm cache clean --force
npm install -g @openai/codex
快速开始
- 注册 TeamoRouter 获取 API Key
- 按 Codex 接入文档 配置 baseUrl 和 API Key
- 跑通第一个 Codex 任务
通过 TeamoRouter 稳定接入 Codex、Claude Code、Gemini CLI。
常见问题 (FAQ)
Q: Windows 上 Codex 提示 "command not found" 怎么办?
A: 检查 npm 全局安装路径是否在 PATH 中。通常在 C:\Users\<用户名>\AppData\Roaming\npm,需要手动添加到系统 PATH。
Q: WSL2 和 PowerShell 哪个更适合运行 Codex? A: 两者都可以。WSL2 提供更接近生产 Linux 环境的体验,且 Node.js 管理更简单。PowerShell 则无需虚拟机层,直接运行。建议根据你的项目环境决定。
Q: Windows 上使用 TeamoRouter 有哪些优势? A: 无需为 OpenAI API 配置代理,直接设置 baseUrl 到 TeamoRouter 端点即可。环境变量配置与 Linux/macOS 一致,跨平台迁移成本低。
Q: PowerShell 执行策略如何永久修改?
A: 运行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser。这只会影响当前用户,不会影响系统其他用户。
Q: Codex 在 Windows 上性能如何?
A: Codex 本身是轻量级 CLI,在 Windows 上性能表现良好。但如果使用 WSL2,文件系统 I/O(特别是跨 /mnt/c 操作)会有性能损耗,建议将项目放在 WSL2 原生文件系统(~/project)中。