一:教程定位 🎯

Codex 能否稳定完成开发任务,很大程度上取决于本地开发环境是否统一、可重复、可测试。

在 Windows 11 中,常见的开发环境问题包括:

Node.js 安装在 Windows,项目却运行在 WSL Git 在 Windows 和 WSL 中分别使用不同账号 项目放在 C 盘,Linux 工具访问速度较慢 Docker 同时安装在 Windows 和 WSL,命令发生冲突 Python 包全部安装到系统环境 Codex CLI 找不到项目使用的 Node、Python 或 Docker VS Code 打开的不是 WSL 工作区 终端、IDE 和 Codex 使用不同的配置文件

本篇的目标,是建立一套统一结构:

Windows 11 ├── ChatGPT 桌面应用 / Codex ├── VS Code ├── Windows Terminal └── Docker Desktop │ │ WSL2 Integration ▼ WSL2 Ubuntu ├── Git ├── Node.js / npm ├── Python / venv ├── Codex CLI ├── Docker CLI └── 项目源码

Codex CLI 官方支持 Windows 11 通过 WSL2 使用;Docker Desktop 官方也建议在 WSL2 开发时把项目代码存放在 Linux 文件系统中,并通过 WSL Integration 使用 Docker。([GitHub][1])


二:教程信息 📋

目标读者: Codex 初学者、Windows 开发人员 预计时长: 1.5~2 小时 难度等级: ★☆☆ 操作系统: Windows 11 推荐 Linux: Ubuntu WSL2


三:学习目标 📌

完成本篇后,你应该能够:

  • 安装并检查 WSL2
  • 安装 Ubuntu 开发环境
  • 在 WSL 中配置 Git
  • 使用 NVM 管理 Node.js
  • 配置 Python 虚拟环境
  • 在 WSL 中安装 Codex CLI
  • 安装 Codex IDE 扩展
  • 安装并使用 Windows 桌面应用中的 Codex
  • 配置 Docker Desktop WSL2 集成
  • 在 VS Code 中打开 WSL 项目
  • 完成一次 Codex 环境验证
  • 排查 Windows 与 WSL 路径、权限和命令冲突

第一部分:环境架构设计

四:推荐架构 🏗️

推荐将工具按以下方式安装。

安装在 Windows

  • Windows Terminal
  • Visual Studio Code
  • ChatGPT 桌面应用
  • Docker Desktop
  • 浏览器

安装在 WSL2 Ubuntu

  • Git
  • Node.js
  • npm
  • Python
  • pip
  • Codex CLI
  • 项目依赖
  • 项目源码

通过 Docker Desktop 提供

  • docker
  • docker compose
  • Docker Engine
  • BuildKit
  • 容器网络
  • 镜像存储

这样可以让:

Codex CLI Git Node.js Python Docker CLI 项目源码

全部运行在接近 Linux 服务器的环境中。


五:为什么不建议全部装在 Windows 🤔

完全使用 Windows 原生环境并非不可行,但在以下项目中容易遇到差异:

  • Docker 项目
  • Linux Shell 脚本
  • Node.js 后端
  • Python 后端
  • Java 微服务
  • Kubernetes 与 Helm
  • CI/CD 脚本
  • 依赖 chmod、grep、sed、awk 的项目

典型问题包括:

⚠️ 注意:

  • 路径分隔符不同
  • 文件权限不同
  • Shell 命令不同
  • 换行符不同
  • 软链接行为不同
  • 大小写敏感性不同
  • 开发环境和 Linux 服务器不一致

WSL 可以直接在 Windows 上运行 Linux 工具和 Bash 命令,不需要维护完整传统虚拟机。Microsoft 当前为 Windows 11 提供了 wsl --install 一键安装方式。([Microsoft Learn][2])


第二部分:安装和检查 WSL2

六:安装前检查 🔍

按下:

Win + R

输入:

winver

确认操作系统为 Windows 11。

然后打开任务管理器:

任务管理器 → 性能 → CPU

确认:

虚拟化:已启用

如果显示未启用,需要进入 BIOS/UEFI 开启:

Intel VT-x AMD-V SVM Mode Virtualization Technology

不同电脑名称可能不同。


七:安装 WSL ⚙️

以管理员身份打开 PowerShell:

wsl --install

该命令会:

  • 启用 WSL 组件
  • 启用虚拟机平台
  • 安装 WSL 内核
  • 默认安装 Ubuntu

执行完成后重启 Windows。Microsoft 官方当前推荐通过该命令安装 WSL。([Microsoft Learn][2])

如果只显示帮助信息,先查看可用发行版:

wsl --list --online

安装 Ubuntu:

wsl --install -d Ubuntu

如果下载停在 0.0%

wsl --install --web-download -d Ubuntu

八:更新 WSL 🔄

重新启动后打开普通 PowerShell:

wsl --update

设置默认使用 WSL2:

wsl --set-default-version 2

查看发行版:

wsl --list --verbose

预期:

  NAME      STATE     VERSION
* Ubuntu    Stopped   2

如果 Ubuntu 显示版本 1:

wsl --set-version Ubuntu 2

设置默认发行版:

wsl --set-default Ubuntu

九:初始化 Ubuntu 🚀

从开始菜单打开:

Ubuntu

首次启动时需要创建:

  • Linux 用户名
  • Linux 密码

例如:

Username: developer

设置密码时终端不会显示字符,这是正常现象。

⚠️ 注意:

  • 该用户不是 Windows 用户
  • 该密码不是 Windows 登录密码
  • 该用户将拥有自己的 Linux Home 目录

进入后检查:

whoami
pwd
uname -a

预期目录类似:

/home/developer


十:更新 Ubuntu 软件包 📦

执行:

sudo apt update
sudo apt upgrade -y

安装基础工具:

sudo apt install -y \
  git \
  curl \
  wget \
  ca-certificates \
  build-essential \
  unzip \
  zip \
  jq \
  tree \
  ripgrep \
  python3 \
  python3-pip \
  python3-venv

检查:

git --version
curl --version
python3 --version
jq --version
rg --version

第三部分:项目目录设计

十一:项目应该放在哪里 📁

✅ 推荐: /home/developer/projects

创建目录:

mkdir -p ~/projects
cd ~/projects

⚠️ 注意: 不建议长期把活跃项目放在:

  • /mnt/c/Users/用户名/Desktop
  • /mnt/c/Users/用户名/Documents
  • /mnt/d/projects

Docker 官方建议 WSL2 开发时把项目代码放在 Linux 发行版的文件系统中,以获得更好的文件访问和容器开发体验。([Docker Documentation][3])

✅ 推荐: ~/projects/city-snapshot-platform

⚠️ 注意: 不推荐放在 /mnt/c/project/city-snapshot-platform


十二:Windows 如何访问 WSL 文件 🔗

在 Windows 文件资源管理器地址栏输入:

\\wsl$

然后进入:

Ubuntu → home → developer → projects

也可以在 WSL 中执行:

explorer.exe .

这会使用 Windows 文件资源管理器打开当前 Linux 目录。

⚠️ 注意: 不要频繁使用 Windows 编辑器直接修改 WSL 内部系统文件:

  • /etc
  • /usr
  • /var

项目文件建议通过 VS Code WSL 模式编辑。


第四部分:配置 Git

十三:安装检查 ✅

Ubuntu 中已经通过 apt 安装 Git。

检查:

git --version

Git 官方建议 Debian/Ubuntu 系统通过包管理器安装 Git。([Git][4])


十四:配置 Git 用户 👤

执行:

git config --global user.name "你的姓名"
git config --global user.email "你的邮箱"

例如:

git config --global user.name "Shengjie He"
git config --global user.email "shengjie@example.com"

设置默认分支:

git config --global init.defaultBranch main

设置拉取策略:

git config --global pull.ff only

设置换行符:

git config --global core.autocrlf input

查看:

git config --global --list

推荐结果:

user.name=Shengjie He
user.email=shengjie@example.com
init.defaultbranch=main
pull.ff=only
core.autocrlf=input

十五:配置 SSH Key 🔑

在 WSL 中生成:

ssh-keygen -t ed25519 -C "你的邮箱"

直接按回车,默认路径为:

~/.ssh/id_ed25519

建议为私钥设置密码。

启动 Agent:

eval "$(ssh-agent -s)"

添加私钥:

ssh-add ~/.ssh/id_ed25519

查看公钥:

cat ~/.ssh/id_ed25519.pub

把公钥添加到:

  • GitHub
  • GitLab
  • Gitee
  • 企业 Git 服务器

测试:

ssh -T git@github.com

或者:

ssh -T git@gitlab.company.com

⚠️ 注意: 不要提交 ~/.ssh/id_ed25519

私钥永远不应放入 Git 仓库。


十六:克隆项目 📥

cd ~/projects
git clone git@gitlab.company.com:team/city-snapshot-platform.git
cd city-snapshot-platform

检查:

git status
git branch --show-current
git remote -v

第五部分:配置 Node.js

十七:为什么使用 NVM 🤷

不同项目可能要求:

  • Node.js 18
  • Node.js 20
  • Node.js 22
  • Node.js 24

直接使用系统级 Node.js,容易发生版本冲突。

NVM 可以:

  • 安装多个 Node.js 版本
  • 按项目切换版本
  • 使用 .nvmrc 固定版本
  • 设置默认 Node.js

NVM 官方支持 Linux 和 Windows WSL。([GitHub][5])


十八:安装 NVM 📥

执行:

curl -o- \
  https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh \
  | bash

重新加载终端配置:

source ~/.bashrc

检查:

command -v nvm
nvm --version

如果没有输出,关闭 Ubuntu 终端后重新打开。


十九:安装 Node.js LTS ⚡

执行:

nvm install --lts

设置默认版本:

nvm alias default 'lts/*'

检查:

node --version
npm --version

Codex CLI 通过 npm 安装,因此 Node.js 必须能在当前 WSL Shell 中正常运行。


二十:项目固定 Node.js 版本 📌

进入项目:

cd ~/projects/city-snapshot-platform

查看当前版本:

node --version

创建 .nvmrc

node --version > .nvmrc

之后进入项目执行:

nvm use

其他团队成员可以执行:

nvm install
nvm use

NVM 会向上查找 .nvmrc,并使用其中声明的 Node.js 版本。([GitHub][5])


二十一:配置 npm 国内源(可选)🌐

网络访问 npm 官方源较慢时,可以临时设置:

npm config set registry https://registry.npmmirror.com

检查:

npm config get registry

恢复官方源:

npm config set registry https://registry.npmjs.org

企业项目更推荐使用:

  • Nexus
  • Artifactory
  • Verdaccio
  • 企业 npm 私服

⚠️ 注意: 不要在未经团队确认的情况下提交个人 .npmrc


第六部分:配置 Python

二十二:检查 Python 🐍

python3 --version
pip3 --version

Ubuntu 中建议保留系统 Python,不要直接删除或覆盖。

每个 Python 项目应建立独立虚拟环境。


二十三:创建虚拟环境 🔧

进入项目:

cd ~/projects/city-snapshot-platform

创建:

python3 -m venv .venv

激活:

source .venv/bin/activate

检查:

which python
python --version
pip --version

路径应类似:

/home/developer/projects/city-snapshot-platform/.venv/bin/python

Python 官方建议使用 venv 创建彼此隔离的项目环境,常用目录名为 .venv,且虚拟环境不应提交到 Git。([Python documentation][6])


二十四:升级虚拟环境中的 pip ⬆️

python -m pip install --upgrade pip

安装项目依赖:

pip install -r requirements.txt

退出环境:

deactivate

在 .gitignore 中加入:

.venv/
__pycache__/
*.pyc

第七部分:安装 Codex CLI

二十五:在 WSL 中安装 💻

确认:

node --version
npm --version

安装 Codex:

npm install -g @openai/codex

检查:

codex --version

Codex 官方提供 npm 全局安装方式,官方仓库也将 Windows 11 via WSL2 列为支持的运行环境。([OpenAI Help Center][7])


二十六:登录 Codex 🔐

进入项目:

cd ~/projects/city-snapshot-platform

启动:

codex

选择:

Sign in with ChatGPT

浏览器会打开登录页面。

登录后,在 Codex 中执行:

/status

检查:

  • 当前目录
  • 认证状态
  • 运行模式
  • 模型
  • Git 仓库

Codex 可使用 ChatGPT 账号登录;CLI、IDE 和桌面应用可以共享同一 Codex 账号能力。([OpenAI Help Center][8])


二十七:更新 Codex CLI ⬆️

执行:

codex --upgrade

也可以:

npm install -g @openai/codex@latest

更新后检查:

codex --version

二十八:第一次环境验证 ✅

在项目根目录启动:

codex

输入:

请只检查当前开发环境,不修改任何文件。

请执行并汇总:

  1. 当前操作系统和工作目录。
  2. Git 版本与当前分支。
  3. Node.js 和 npm 版本。
  4. Python 和 pip 版本。
  5. Docker 和 Docker Compose 版本。
  6. 当前项目是否为 Git 仓库。
  7. 当前是否有未提交修改。
  8. 项目中可用的测试、构建和启动命令。

无法运行的命令要明确说明原因。

此时 Docker 还未配置完成,允许 Codex 如实报告 Docker 不可用。


第八部分:安装 VS Code 与 WSL 扩展

二十九:安装 VS Code 📝

在 Windows 安装 Visual Studio Code。

安装完成后打开 PowerShell:

code --version

如果无法识别 code,重新启动终端或重新安装 VS Code,并确保加入 PATH。


三十:安装 WSL 扩展 🔌

在 Windows PowerShell 执行:

code --install-extension ms-vscode-remote.remote-wsl

也可以在 VS Code 扩展市场搜索:

WSL Publisher: Microsoft

VS Code 的 WSL 扩展允许 Windows 上的编辑器连接 WSL,并在 Linux 环境中执行扩展、终端、调试和开发工具。([Visual Studio Code][9])


三十一:从 WSL 打开 VS Code 🚀

Ubuntu 中执行:

cd ~/projects/city-snapshot-platform
code .

VS Code 左下角应显示:

WSL: Ubuntu

打开终端:

Terminal → New Terminal

检查:

pwd
which node
which python3
which git

路径应该来自 Linux:

/home/developer/... /home/developer/.nvm/... /usr/bin/python3 /usr/bin/git

如果显示:

C:...

说明当前不是 WSL 工作区


第九部分:安装 Codex IDE 扩展

三十二:安装官方扩展 🔌

在 VS Code 中搜索:

Codex – OpenAI's coding agent Publisher: OpenAI

扩展标识为:

OpenAI.chatgpt

也可以执行:

code --install-extension OpenAI.chatgpt

官方 Codex 扩展支持 VS Code,并兼容 Cursor、Windsurf 等多数 VS Code 派生编辑器。扩展可以使用打开文件和选中代码作为上下文,也可以委派云端任务。([OpenAI Help Center][8])


三十三:在 WSL 工作区启用扩展 ⚙️

在 VS Code 打开:

Extensions

找到 Codex 扩展。

如果出现:

Install in WSL: Ubuntu

点击安装。

不同扩展的执行位置可能不同,关键是确保当前项目窗口左下角显示:

WSL: Ubuntu

然后使用 ChatGPT 账号登录。


三十四:IDE 验证任务 ✅

在项目中打开:

package.json

或:

README.md

在 Codex 面板输入:

请分析当前打开的文件,并说明:

  1. 文件用途。
  2. 关键配置。
  3. 可能使用的启动命令。
  4. 可能使用的测试命令。

不要修改文件。

确认 Codex 可以读取当前 WSL 项目。


第十部分:安装 Windows 桌面应用

三十五:当前桌面应用形态 💻

截至 2026 年 7 月,Codex 已集成到新的 ChatGPT 桌面应用中,支持 Windows 和 macOS。应用中可以在 ChatGPTWork 与 Codex 之间切换;功能正在逐步向符合条件的账号开放。([OpenAI Help Center][10])

如果账号暂时没有桌面 Codex 入口,不影响使用:

  • Codex CLI
  • Codex IDE 扩展
  • Codex Cloud

三十六:安装桌面应用 📥

下载并安装 Windows ChatGPT 桌面应用。

启动后:

  1. 使用 ChatGPT 账号登录
  2. 从左上角选择 Codex
  3. 添加本地项目
  4. 选择项目文件夹或 Git 仓库

Codex 官方入门流程是:

登录 ChatGPT 选择本地文件夹或 Git 仓库 创建第一个任务

([OpenAI][11])


三十七:桌面应用和 WSL 项目的选择 🔄

WSL 项目路径为:

\\wsl$\Ubuntu\home\developer\projects\city-snapshot-platform

在桌面应用中选择项目时,优先选择对应 WSL 路径。

如果桌面应用提供 Agent Environment 选项,选择:

WSL Ubuntu

不同版本的桌面应用界面可能略有不同。

首次使用时建议用简单只读任务验证:

请只分析当前项目,不修改文件。

确认:

  1. 当前项目根目录。
  2. 当前 Git 分支。
  3. 项目主要语言。
  4. 可用测试命令。
  5. 是否能访问 Node.js 和 Python。

第十一部分:安装 Docker Desktop

三十八:为什么使用 Docker Desktop 🐳

推荐在 Windows 安装 Docker Desktop,并使用 WSL2 Backend

⚠️ 注意: 不要同时在 Ubuntu 中另外安装:

  • docker-ce
  • dockerd
  • containerd

Docker 官方明确建议:使用 Docker Desktop WSL2 Backend 前,移除直接安装在 WSL 发行版中的 Docker Engine 或 Docker CLI,避免冲突。([Docker Documentation][12])


三十九:安装 Docker Desktop 📥

安装最新 Docker Desktop for Windows。

普通个人开发推荐使用默认的 Per-user 安装方式。Docker 官方当前将 Per-user 安装列为多数用户的推荐方式,并默认使用 WSL2 Backend。([Docker Documentation][13])

安装完成后启动 Docker Desktop。

进入:

Settings → General

确认:

Use the WSL 2 based engine

部分版本默认开启,不会显示该选项。


四十:启用 Ubuntu 集成 🔗

进入:

Settings → Resources → WSL Integration

开启:

Enable integration with my default WSL distro Ubuntu

点击:

Apply & Restart

Docker 官方说明,启用 WSL Integration 后,可以直接在对应 Linux 发行版中使用 docker 命令。([Docker Documentation][12])


四十一:检查 Docker ✅

Ubuntu 中执行:

docker version
docker compose version
docker info

测试:

docker run --rm hello-world

查看容器:

docker ps

如果项目有 Compose 文件:

docker compose config

四十二:Docker 基础验证 🧪

创建测试目录:

mkdir -p ~/projects/docker-check
cd ~/projects/docker-check

创建 compose.yaml

services:
  web:
    image: nginx:alpine
    ports:
      - "18080:80"

启动:

docker compose up -d

访问:

curl http://127.0.0.1:18080

查看:

docker compose ps

清理:

docker compose down

第十二部分:建立统一项目环境

四十三:推荐项目基线文件 📄

项目根目录建议包含:

  • AGENTS.md
  • README.md
  • .gitignore
  • .editorconfig
  • .gitattributes
  • .nvmrc
  • .env.example

Python 项目还可包含:

  • requirements.txt
  • pyproject.toml

四十四:.gitignore 🚫

# Environment
.env
.env.*
!.env.example

# Node.js
node_modules/
npm-debug.log*
pnpm-debug.log*
yarn-error.log*

# Python
.venv/
__pycache__/
*.pyc
.pytest_cache/
.mypy_cache/
.ruff_cache/

# IDE
.vscode/settings.local.json
.idea/

# OS
.DS_Store
Thumbs.db

# Build
dist/
build/
coverage/

# Secrets
*.pem
*.key
*.p12
*.jks

四十五:.gitattributes ⚙️

* text=auto eol=lf

*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf

*.sh text eol=lf
*.yml text eol=lf
*.yaml text eol=lf
*.json text eol=lf

作用:

  • Shell 脚本统一 LF
  • Windows 批处理统一 CRLF
  • 降低 Windows/WSL 换行符冲突

四十六:.editorconfig 📐

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
trim_trailing_whitespace = true

[*.py]
indent_size = 4

[*.md]
trim_trailing_whitespace = false

[*.{bat,cmd,ps1}]
end_of_line = crlf

第十三部分:完整环境自检

四十七:自检脚本 📋

创建:

mkdir -p ~/bin
nano ~/bin/check-dev-env.sh

内容:

#!/usr/bin/env bash
set -u

PASS=0
FAIL=0

check_command() {
  local command_name="$1"

  if command -v "${command_name}" >/dev/null 2>&1; then
    printf "[PASS] %-15s %s\n" \
      "${command_name}" \
      "$(command -v "${command_name}")"
    PASS=$((PASS + 1))
  else
    printf "[FAIL] %-15s not found\n" "${command_name}"
    FAIL=$((FAIL + 1))
  fi
}

echo "===== System ====="
uname -a
printf "User: %s\n" "$(whoami)"
printf "Home: %s\n" "${HOME}"
printf "PWD:  %s\n" "$(pwd)"

echo
echo "===== Commands ====="
check_command git
check_command node
check_command npm
check_command python3
check_command pip3
check_command codex
check_command docker
check_command jq
check_command rg
check_command code

echo
echo "===== Versions ====="
git --version 2>/dev/null || true
node --version 2>/dev/null || true
npm --version 2>/dev/null || true
python3 --version 2>/dev/null || true
codex --version 2>/dev/null || true
docker --version 2>/dev/null || true
docker compose version 2>/dev/null || true
code --version 2>/dev/null | head -n 1 || true

echo
echo "===== Git ====="
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
  printf "Branch: %s\n" "$(git branch --show-current)"
  git status --short
else
  echo "Current directory is not a Git repository."
fi

echo
echo "===== Result ====="
printf "PASS=%s\n" "${PASS}"
printf "FAIL=%s\n" "${FAIL}"

if [ "${FAIL}" -gt 0 ]; then
  exit 1
fi

授权:

chmod +x ~/bin/check-dev-env.sh

运行:

~/bin/check-dev-env.sh

四十八:预期结果 📊

至少应通过:

  • git
  • node
  • npm
  • python3
  • pip3
  • codex
  • docker
  • jq
  • rg
  • code

如果项目没有使用 Python,可以保留 Python 基础环境,不需要安装项目依赖。


第十四部分:使用 Codex 验证整个环境

四十九:创建验证仓库 🏗️

mkdir -p ~/projects/codex-environment-lab
cd ~/projects/codex-environment-lab

git init
npm init -y

cat > README.md <<'EOF'
# Codex Environment Lab

This repository is used to verify the Windows 11,
WSL2, VS Code, Node.js, Python, Docker and Codex environment.
EOF

git add README.md package.json
git commit -m "chore: initialize environment lab"

五十:启动 Codex ▶️

codex

输入:

请检查当前开发环境,不要修改任何文件。

需要验证:

  1. 当前工作目录位于 WSL Linux 文件系统,而不是 /mnt/c。
  2. 当前目录是 Git 仓库。
  3. Git、Node.js、npm、Python、Codex、Docker 和 Docker Compose 可用。
  4. 输出各工具版本。
  5. 执行 git status。
  6. 执行 docker info,但不要创建或删除容器。
  7. 检查 README.md 内容。

最后给出:

  • 已通过项目
  • 失败项目
  • 修复建议

五十一:合格结果 ✅

Codex 应能够确认:

  • 当前路径位于 /home/...
  • Git 仓库可用
  • Node.js 可用
  • Python 可用
  • Docker Desktop WSL Integration 正常
  • Docker Compose 可用
  • README.md 可读取
  • 没有修改文件

执行后检查:

git status

工作区应保持干净。


第十五部分:常见问题排查

五十二:wsl --install 无法执行 ❌

以管理员方式运行 PowerShell。

执行:

wsl --status
wsl --update

查看发行版:

wsl --list --online

手动安装:

wsl --install -d Ubuntu

如果仍然失败,检查:

  • Windows Update
  • 虚拟化
  • Virtual Machine Platform
  • Windows Subsystem for Linux

五十三:Ubuntu 显示 WSL1 🔄

查看:

wsl -l -v

转换:

wsl --set-version Ubuntu 2

设置默认:

wsl --set-default-version 2

五十四:nvm: command not found ❓

执行:

source ~/.bashrc

检查:

grep -n "NVM_DIR" ~/.bashrc

正常应包含:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

关闭终端后重新打开。


五十五:codex: command not found ❓

检查 npm 全局目录:

npm config get prefix
npm bin -g 2>/dev/null || true

重新安装:

npm install -g @openai/codex@latest

检查:

command -v codex
codex --version

确认 Codex 是在 WSL 中安装,而不是只安装在 Windows PowerShell 中。


五十六:VS Code 终端使用的是 Windows 🔧

检查 VS Code 左下角是否显示:

WSL: Ubuntu

关闭当前窗口,在 Ubuntu 中执行:

cd ~/projects/项目目录
code .

终端检查:

uname -a
pwd
which node

五十七:Docker 命令不可用 ❓

确认 Docker Desktop 正在运行。

检查:

wsl -l -v

Docker Desktop 中打开:

Settings → Resources → WSL Integration

开启 Ubuntu,然后:

Apply & Restart

Ubuntu 中重新执行:

docker version

五十八:Docker 与 WSL 内 Docker 冲突 ⚠️

检查:

which docker
ps aux | grep dockerd

⚠️ 注意: 如果此前在 Ubuntu 中安装过 Docker Engine,可能与 Docker Desktop 冲突。

按照 Docker 官方建议,使用 Docker Desktop WSL2 Backend 时,不应同时维护一套直接安装在 WSL 内的 Docker Engine。([Docker Documentation][12])


五十九:项目在 /mnt/c 中运行很慢 🐢

移动项目:

mkdir -p ~/projects
cp -a /mnt/c/projects/city-snapshot-platform \
  ~/projects/

或者重新克隆:

cd ~/projects
git clone <仓库地址>

然后使用:

code ~/projects/city-snapshot-platform

六十:Git 文件全部显示被修改 🔧

通常由换行符造成。

检查:

git config --global core.autocrlf

WSL 推荐:

git config --global core.autocrlf input

项目增加 .gitattributes

* text=auto eol=lf

⚠️ 注意: 不要在未确认内容前直接提交所有换行符变化。


六十一:Python 安装包污染系统环境 ⚠️

⚠️ 注意: 不要执行 sudo pip install ...

正确方式:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

六十二:Codex 桌面应用找不到 WSL 工具 🔧

先确认项目是以 WSL 环境打开。

检查桌面应用中的:

  • Project Path
  • Agent Environment
  • Integrated Terminal

首次配置时,不要同时在 Windows 和 WSL 中安装两套不同版本的项目依赖。

✅ 推荐: Windows: 只安装桌面工具

WSL: 安装 Git、Node、Python、Codex CLI 和项目依赖


第十六部分:一小时练习

六十三:练习一:完成环境安装 🏋️

要求:

  • WSL2 Ubuntu 正常运行
  • Git 正常
  • Node.js 正常
  • Python 正常
  • Codex CLI 正常
  • Docker 正常
  • VS Code WSL 正常
  • Codex IDE 扩展正常

六十四:练习二:克隆项目 🏋️

cd ~/projects
git clone <项目地址>
cd <项目目录>

执行:

git status
nvm use || true
python3 --version
docker compose config || true

六十五:练习三:让 Codex 检查项目 🏋️

提示词:

请只分析当前项目,不修改任何文件。

输出:

  1. 操作系统和当前路径。
  2. 项目技术栈。
  3. Git 当前分支和状态。
  4. Node.js 要求。
  5. Python 要求。
  6. Docker 与 Compose 配置。
  7. 安装依赖命令。
  8. 启动命令。
  9. 测试命令。
  10. 当前环境缺失项。

六十六:练习四:检查环境隔离 🏋️

Node.js:

nvm ls
node --version

Python:

python3 -m venv .venv
source .venv/bin/activate
which python
deactivate

Docker:

docker context show
docker version
docker compose version

第十七部分:验收标准

六十七:本篇验收清单 ✅

完成后应达到:

  • Windows 11 虚拟化已开启
  • WSL2 已安装
  • Ubuntu 运行在 WSL2
  • 项目存放在 ~/projects
  • Git 用户信息已配置
  • SSH Key 已配置
  • Node.js 使用 NVM 管理
  • 项目包含 .nvmrc
  • Python 使用 .venv
  • Codex CLI 安装在 WSL
  • Codex CLI 可以登录
  • VS Code 已安装 WSL 扩展
  • VS Code 工作区显示 WSL: Ubuntu
  • Codex IDE 扩展可以读取项目
  • Windows 桌面应用可以打开 Codex
  • Docker Desktop 使用 WSL2 Backend
  • Docker Desktop 已启用 Ubuntu Integration
  • docker 与 docker compose 可在 WSL 中执行
  • Codex 可以检查完整开发环境

第十八部分:本篇总结

六十八:核心结论 📝

  • Windows 负责桌面工具
  • WSL2 负责开发工具链
  • 项目源码优先放在 Linux 文件系统
  • Git、Node、Python、Codex CLI 安装在 WSL
  • Node.js 使用 NVM 管理版本
  • Python 使用 venv 隔离项目依赖
  • VS Code 必须以 WSL 模式打开项目
  • Docker Engine 由 Docker Desktop 提供
  • 不要同时在 WSL 中再运行一套 Docker Engine
  • Codex 桌面应用、IDE 和 CLI 可以组合使用
  • 环境验证必须基于真实命令,而不是只看安装界面

推荐最终结构:

Windows 11 ├── ChatGPT 桌面应用 ├── VS Code ├── Windows Terminal └── Docker Desktop │ ▼ WSL2 Ubuntu ├── ~/projects ├── Git ├── NVM + Node.js ├── Python + .venv ├── Codex CLI └── Docker CLI / Compose

更多推荐