Skip to content

Codex Conda Wrapper 配置记录 ​

视频教程 ​

一、 目标说明 ​

我的目标是实现在终端直接输入 codex 时,能自动进入 codex 的 conda 环境并启动程序。这是因为 Codex App 默认会寻找特定路径下的执行文件。

WARNING

网络要求:环境变量中必须配置可用的 http_proxy 和 https_proxy,否则在认证登录步骤时会卡住,报错403。

二、 初始化与清理 ​

为了确保不冲突,我们从头开始创建环境并清理可能存在的旧配置。

Shell

# 如无conda 则先装conda
# conda 一键安装 这是一行代码
wget -qO- http://iyun70.com:8011/softs/conda_install.sh | bash

1. 创建环境并安装 Codex ​

使用 mamba 创建专用的 conda 环境并安装所需的依赖:

bash
mamba create -n codex python=3.10 nodejs -c conda-forge -y
conda activate codex
# 如网络慢则镜像安装
npm install -g @openai/codex --registry=https://registry.npmmirror.com
# 官方源
npm install -g @openai/codex

2. 清除旧 wrapper 和 PATH 配置 ​

为了设置全局调用,先清理旧的错误配置(之前可能不小心将 command -v codex 写入了 wrapper 导致死循环):

删除之前写错的 wrapper 脚本:

bash
rm -f ~/bin/codex

从 ~/.bashrc 里清理掉之前添加的 PATH:

bash
sed -i '/export PATH="\$HOME\/bin:\$HOME\/.local\/bin:\$PATH"/d' ~/.bashrc
source ~/.bashrc

三、 重新配置正确的 Wrapper ​

1. 找到真实的 Codex 路径 ​

先进入环境确认真实路径,避免再次填错:

bash
conda activate codex
echo "$CONDA_PREFIX/bin/codex"

输出的 $CONDA_PREFIX/bin/codex 才是真实的程序路径。必须在脚本里使用这个绝对路径,而不是依赖 command -v。

2. 编写新的 wrapper 脚本 ​

新建并写入 ~/bin/codex 脚本:

bash
mkdir -p ~/bin
cat > ~/bin/codex <<'EOF'
#!/usr/bin/env bash
set -e

# 获取 conda 基础路径并加载
CONDA_BASE="$(conda info --base)"
source "$CONDA_BASE/etc/profile.d/conda.sh"

# 自动激活环境并执行真实命令
conda activate codex
exec "$CONDA_PREFIX/bin/codex" "$@"
EOF

赋予执行权限:

bash
chmod +x ~/bin/codex

3. 配置环境变量 ​

确保 ~/bin 位于 PATH 的最前面:

bash
# 写入环境变量配置
grep -q 'HOME/bin' ~/.bashrc 2>/dev/null || sed -i '1iexport PATH="$HOME/bin:$HOME/.local/bin:$PATH"' ~/.bashrc

# 使配置立即生效
source ~/.bashrc
hash -r

四、 验证结果 ​

退出当前的 conda 环境,直接用普通环境测试是否生效:

bash
conda deactivate

查看 codex 指向的路径和版本信息:

bash
which codex
# 预期输出: ~/bin/codex (或者是展开后的绝对路径)

codex --version
# 预期输出当前安装的 Codex 版本号

启动与登录 ​

最后,直接启动试试。根据您的系统情况,以下两条指令哪条能成功唤起登录就用哪条:

第一次启动需要使用 device code 进行设备验证登录:

bash
codex

或者使用专门的登录参数:

bash
codex login --device-auth

如果能正常弹出 Codex 的交互界面或登录提示,说明 wrapper 配置大功告成!以后直接敲 codex 即可愉快使用了。