尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Windows AI编程环境搭建实战:从WSL2到Docker再到Codex

Windows AI编程环境搭建实战:从WSL2到Docker再到Codex 说实话这几年陆陆续续帮朋友和自己配了不下十次 Windows 开发环境感触最深的是AI 编程工具再好用底座环境没搭好体验照样稀碎。很多人不是不想用 AI 辅助写代码而是卡在了第一步——在 Windows 上不知道从哪开始装完 Python 又发现没有 Git配好 Git 又发现 Docker 起不来等把环境磨好了热情也磨没了。这篇指南就是把我自己实际验证过的 Windows AI 编程环境搭建流程完整写出来覆盖编码助手、AI 应用开发、中间件运行三类需求。目标读者是刚接触 AI 编程的初学者以及需要在 Windows 上同时跑 Python、Docker、Redis、Elasticsearch还想接上 Codex、AI 插件这类智能工具的开发者。不论你是写 Python、Java 还是前端这套底座都通用。内容按我实际动手的顺序展开先讲整体方案再装终端和系统组件接着是 Python、JDK、Redis、Elasticsearch然后是 Docker最后把 Codex 和 VS Code 的 AI 插件配好结尾附上我真实踩过的坑和排查方法。1. 整体思路与环境选型先把“AI 编程环境”拆清楚1.1 先想清楚你要的是编码助手、AI 应用开发还是本地模型很多朋友一上来就问我“帮我装个 AI 环境”。这个说法太宽了我一般会先反问三句话你是要 AI 帮你写代码还是要代码里调用 AI 接口还是要自己跑一个小模型三者对环境的依赖完全不同。编码助手路线只需要 VS Code 装上插件Copilot、通义灵码、Continue 等顶多再配一个 Codex 命令行工具不依赖任何中间件。AI 应用开发路线需要 Python 或 Node 环境大概率还要 Redis、向量数据库、Elasticsearch 这类组件此时 Docker 几乎是必需品。本地模型路线需要独立显卡、CUDA、大内存Windows 下一般借助 WSL2 跑推理框架这块今天不展开但底座环境是通用的。我见过太多人跟着教程把全套服务装完最后只用了其中两个剩下全是占用资源的累赘。我的建议是以“编码助手 AI 应用开发”为默认目标这套组合覆盖最广能写脚本、能接大模型 API、能跑中间件后面想扩展本地模型也不冲突。1.2 为什么推荐“原生 Windows WSL2 Docker Desktop”三件套我实际用下来最优解不是裸装 Linux 虚拟机也不是只用 Windows 原生命令行硬扛而是“Windows 负责日常编码WSL2 负责 Linux 环境Docker Desktop 负责跑中间件”这套三件套组合。纯 Windows 原生适合只写 Python 脚本、不碰容器的场景。缺点是 Redis、Elasticsearch 这类软件在 Windows 上的支持普遍差一截很多官方镜像根本不提供 Windows 版本。WSL2 方案相当于一个轻量 Linux 虚拟机启动快、内存占用小、与 Windows 文件系统互通。日常开发最常用的 Linux 命令、Redis、Docker 后端都在这里跑体验和 Linux 服务器几乎一致。传统虚拟机方案隔离性最好但资源开销大、文件共享麻烦日常开发完全没有必要。方案启动速度内存开销Linux 生态适合人群纯 Windows 原生快低差只写 Python/前端WSL2 Docker Desktop快中好大部分开发者传统 VM 虚拟机慢高好需要完整隔离个人经验Windows 本体装开发工具WSL2 里跑 Linux 命令和脚本中间件一律 Docker 化。这套结构的好处是系统重装了也不用担心服务配置丢失因为你的服务定义都在 docker-compose.yml 里换新机器拉起来就跑。1.3 动手前先做硬件与版本自查安装前先花三分钟确认几件事能省掉后面八成问题。内存至少 16G建议 32GCPU 虚拟化要在 BIOS 里打开任务管理器-性能-右下角能看到“虚拟化: 已启用”Windows 版本建议 Win11 或 Win10 22H2 以上版本太老的话 WSL2 和 Docker Desktop 会有兼容问题。确认方式很简单WinR 输入 winver 看系统版本CtrlShiftEsc 打开任务管理器看内存和虚拟化状态。如果虚拟化是“已禁用”需要重启进 BIOS 打开 Intel VT-x 或 AMD-V这一步不做后面的 WSL2 和 Docker 基本起不来。2. 基础环境准备终端、包管理器与 Windows 子系统2.1 让终端更像回事Windows Terminal PowerShell 7Windows 自带的 cmd 和旧版 PowerShell 实在不好用第一件事就是把终端换成 Windows Terminal它现在已经是 Windows 11 的默认终端Win10 用户可以去 Microsoft Store 搜“Windows Terminal”安装。装上之后把默认配置文件设为 PowerShell 7顺便把字体换成 Cascadia Mono 或者 JetBrains Mono看代码舒服很多。PowerShell 7 的安装也简单一条命令winget install Microsoft.PowerShell不过要注意它不会覆盖系统自带的 Windows PowerShell 5.1两个版本共存你在终端里把 PowerShell 7 设为默认即可。我习惯把 winget、git、python 这些命令都在 PowerShell 7 里跑脚本语法更现代化处理 json 也比老版本强。2.2 安装 WSL2 并配置好 Linux 子系统这一步核心就是一个命令。以管理员身份打开 PowerShell 或 CMD执行wsl --install这个命令会自动启用需要的 Windows 功能、下载 WSL2 内核并安装默认的 Ubuntu 发行版。装完一般会提示重启。重启后第一次进入 Ubuntu 会让你设置用户名和密码这个用户名建议不要用大写也别太复杂后面进容器经常要敲。装完确认版本wsl -l -v看到 VERSION 列是 2 就说明用的是 WSL2。如果显示 1执行 wsl --set-default-version 2 手动切换。WSL2 默认会占用不少内存我一般会在 %UserProfile%.wslconfig 里手动限制资源配置如下[wsl2] memory8GB processors6 swap2GB保存后执行 wsl --shutdown 重启 WSL 生效。这是很多教程不会写的但实际开发中很管用否则 Docker 和编译一起跑的时候Windows 本体容易卡死。2.3 Git 的安装与 Windows 下的使用习惯Git 是绕不开的基础设施安装命令winget install Git.Git装完在终端里验证 git --version。然后立刻配置用户信息否则提交会报错git config --global user.name 你的名字 git config --global user.email 你的邮箱Windows 下用 Git 有几个经典坑我一个个说。第一个是换行符不同系统之间 LF 和 CRLF 转换会导致文件全部显示被修改建议配置 core.autocrlf 为 false 或按项目统一用 LF。第二个是中文文件名乱码需要执行 git config --global core.quotepath false。第三个是凭据管理器Windows 装 Git 后默认会用 Git Credential Manager以后推送到代码托管平台时弹窗登录一次就行不用反复输密码。3. Python 运行环境搭建与日常使用3.1 用 winget 安装 Python 并确认 PATHPython 在 Windows 上安装最稳的方式就是用 winget它会自动写入 PATH比从官网下载安装包手动勾选省心得多。winget install Python.Python.3.11装完打开一个新的终端执行 python --version 能看到版本号就说明 PATH 没问题。如果提示找不到命令最可能的原因是你用的终端是在安装之前打开的重开一个就好。确实找不到的去“设置-系统-关于-高级系统设置-环境变量”里手动把 Python 的安装目录加进 PATH。这一步是排错高发区后面 7.1 会细说。3.2 venv 虚拟环境与 pip 镜像源配置Python 环境必备意识是任何项目都要建虚拟环境避免依赖互相打架。Windows 下创建和激活的命令如下python -m venv venv .\venv\Scripts\activate在 WSL 里则是python3 -m venv venv source venv/bin/activate激活后命令行前面会出现 (venv) 的提示这时 pip install 的包只会装进这个项目。pip 默认源在国内很慢我在用户目录下新建 pip.iniWindows或 .pip/pip.confLinux来配置镜像。Windows 路径是 %APPDATA%\pip\pip.ini内容很简单[global] index-url https://pypi.tuna.tsinghua.edu.cn/simple trusted-host pypi.tuna.tsinghua.edu.cn配置完 pip install 速度能快非常多这个镜像地址是公开的、政策允许的放心用。3.3 跑通第一个会被 AI 接管的 Python 脚本环境装好写点什么验证呢我的建议是直接用 AI 编程最常遇到的场景调大模型接口。下面这段代码不依赖任何库核心演示 requests 调用 OpenAI 兼容接口的骨架BASE_URL 和 API_KEY 按你自己的服务商配置填import requests def call_llm(prompt: str) - str: url 你配置的API_BASE_URL/chat/completions headers { Content-Type: application/json, Authorization: Bearer 你的API_KEY } payload { model: 你的模型名, messages: [{role: user, content: prompt}], temperature: 0.2 } resp requests.post(url, jsonpayload, headersheaders, timeout60) if resp.status_code ! 200: raise RuntimeError(fAPI error: {resp.status_code} {resp.text}) return resp.json()[choices][0][message][content] if __name__ __main__: print(call_llm(用一句话介绍Python虚拟环境))运行方式python test_llm.py。能正常打印出来说明你的 Python、requests、网络链路都没问题。很多 AI 应用项目的第一行代码就是从这种骨架开始扩展出来的。这里要提醒一句API_KEY 千万别提交进 Git 仓库用环境变量的方式读取更安全。4. 运行时与中间件准备JDK、Redis、Elasticsearch4.1 JDK17 的安装与环境变量Temurin 比 Oracle 更省心如果你做 Java 后端或者要用到一些 Java 工具JDK17 是目前最常用的长期支持版本。我的建议是直接装 Adoptium Temurin 发行版它开源、无商业授权纠纷、更新也及时。winget install EclipseAdoptium.Temurin.17.JDK装完需要手动配环境变量因为 winget 有时不会自动写 JAVA_HOME。在环境变量里新建JAVA_HOMEC:\Program Files\Eclipse Adoptium\jdk-17.0.x.x-hotspotPATH 追加%JAVA_HOME%\bin配置完新开终端验证 java -version 和 javac -version。如果出现“找不到命令”多半是环境变量没刷新生效重开终端还不行就按 7.1 的方法彻底刷新。4.2 Redis 在 Windows 上的三个常见安装思路官方 Redis 并不提供 Windows 版本的正式支持网上那些“Redis-x64-*.zip”多是社区移植版版本较老。实际工作里我见过三种用法方案一Docker 跑 Redis。最推荐一条命令拉起来跟生产环境一致redis-cli 也带了。方案二WSL2 里安装 Redis。适合不想起 Docker 的场景apt install redis-server 即可。方案三用 Memurai 或移植版。适合公司不让用 Docker 的场景能用但版本落后。方案命令/操作优点缺点Dockerdocker run -d -p 6379:6379 redis:7版本新、干净需 Docker 已装WSL2sudo apt install redis-server无额外依赖占 WSL 资源Memurai官网下载安装包Windows 原生服务免费版有限制个人建议如果你已经决定装 Docker第 5 章Redis 这类中间件直接进容器本地不需要装任何东西。4.3 用 Docker 拉一个 Elasticsearch把 JDK 的问题也顺带解决Elasticsearch 同样没有官方 Windows 安装包的便捷渠道而且它运行依赖 Java。与其手动配一套 ESJDK不如直接丢进 Docker。下面命令我实际跑过一拉一启就完事docker run -d --name elasticsearch \ -p 9200:9200 \ -e discovery.typesingle-node \ -e ES_JAVA_OPTS-Xms512m -Xmx512m \ docker.elastic.co/elasticsearch/elasticsearch:8.12.2内存给 512m 是避免小内存电脑被 ES 吃满。启动后访问 http://localhost:9200 能看到 json 信息就成功了。8.x 版本默认开启安全认证会出现一个随机密码和证书如果是纯本地开发可以在启动时追加 -e xpack.security.enabledfalse 关掉认证省去一堆麻烦。这里有个额外收获既然 ES 在容器里跑它自带的 JDK 是容器内部的你本地配的 JDK17 只给你的 Java 项目用。两条路线互不干扰这也是容器化带来的最大价值。5. Docker Desktop 的安装、配置与验证5.1 安装 Docker Desktop 前必须确认的三件事Docker Desktop on Windows 默认依赖 WSL2 后端所以前面的 WSL2 装好就是最大的前置条件。除此之外还要确认三件事系统虚拟化已开启Windows 版本建议 Pro 或 Enterprise家庭版也能用但要额外装 WSL2 并手动配置麻烦磁盘预留至少 10G 空间Docker 镜像动辄几百 MES 这种甚至上 G。去 Docker 官网下载 Docker Desktop Installer.exe双击安装注意安装过程中有一个“Use WSL 2 instead of Hyper-V”的勾选项一定要勾上。勾了才能用 WSL2 后端性能和兼容性都比旧版 Hyper-V 好。5.2 安装后的配置让 Docker 待在 WSL2 里装完启动 Docker Desktop打开 Settings - Resources - WSL Integration确认“Enable integration with my default WSL distro”已勾选并且在列表里选中你的 Ubuntu 发行版。这样你在 WSL 终端里也能直接敲 docker 命令Windows PowerShell 里也可以两边共享同一个 Docker 引擎。然后建议做两件事。一是把镜像存储在 WSL2 的虚拟磁盘里这也是默认行为不用改二是给 WSL 整体规划内存上限重复 2.2 里 .wslconfig 的配置。Docker 跑多了不限制内存的话Windows 机子会变得明显卡顿。5.3 镜像加速、验证测试与日常清理习惯Docker 装好第一件事是拉个 hello-world 验证docker run --rm hello-world能看到“Hello from Docker!”那段经典提示就算成功。接着要考虑拉镜像速度的问题国内环境在 Settings - Docker Engine 里加一段 registry-mirrors 配置把加速地址填成你自己的专属加速地址{ registry-mirrors: [https://你的加速地址] }保存后 Docker 会自动重启。镜像加速地址每个云厂商给的都不太一样而且通常会要求注册账号后才能拿到专属地址网上有些公开的公共地址时好时坏我建议直接注册一个容器镜像服务的账号拿自己的专属地址稳定得多。日常使用中还要养成清理习惯。Docker 跑久了会积累大量悬空镜像和日志我每隔一两周执行一次docker system prune -f这个命令不会删正在使用的容器和镜像只清理垃圾放心用。Windows 上不需要装各种“清理大师”Docker 自己的清理命令比任何第三方工具都靠谱。6. AI 编程工具落地从 Codex 到 VS Code 插件6.1 Codex 的安装与初始化Codex 现在有官方桌面版Windows 可以直接下载安装包安装流程和普通软件一样装完在开始菜单打开即可。如果你更习惯命令行也可以用 npm 方式安装。npm install -g openai/codex装完后在终端执行 codex 进入交互界面首次使用会让你登录账号完成认证然后在 ~/.codex/config.toml 里可以指定模型和参数。比如我习惯把超时放宽、把默认模型改成更强的那一档配置大致长这样model gpt-5-codex model_provider openai approval_policy on-requestapproval_policy 建议设成 on-request这样 AI 每次要改文件或者执行命令之前都会先询问你对代码库更安全。auto 模式虽然省事但新手阶段容易失控。Codex 的典型用法是在项目根目录直接运行它会自动读取项目结构和 Git 状态然后你把需求用自然语言描述清楚就行。比如“在 src 下新增一个函数把 CSV 转成 JSON 并保留空行”它会自己定位文件、改造代码、给出 diff 确认。这一点对不熟悉项目结构的人帮助很大相当于有人帮你快速定位改动点。6.2 VS Code 里的 AI 插件矩阵选一个主打两个备用命令行有 Codex编辑器里还得有日常陪伴的插件。我用了大半年的几个插件按场景给你列个表插件定位适合谁GitHub Copilot自动补全 多行生成深度依赖 GitHub接受订阅制通义灵码中文交互好、免费额度国内开发者入门成本低Continue自定义模型、全开源想自己接任意大模型的人ClineAgent 式自主编码习惯给 AI 派完整任务的开发者我的选型建议是公司报销选 Copilot不想折腾免费接入选通义灵码喜欢开源和自托管模型选 Continue。三个都装上、同时开也可以但要注意它们会抢 Tab 键的补全事件如果发现补全混乱只留一个负责补全即可。6.3 让 AI Agent 完整跑通一个本地任务光有工具不会用等于白搭。下面给一个我经常演示给朋友的入门场景目标是让 AI Agent 帮你整理一个下载目录里堆积如山的文件。在项目目录下对 Codex 或 Cline 说“帮我写一个 Python 脚本扫描当前目录下所有文件按扩展名分类移动到 images、docs、archives、code 子目录重名文件自动加时间戳后缀并打印每个分类移动了多少个文件。”正常来说AI 会生成脚本、询问是否创建文件、执行、展示结果。这个过程你只需要点几下确认真正的“编程”由 AI 完成。但注意AI 生成的代码不保证完全正确你要养成阅读 diff 的习惯至少理解它动了哪些文件、为什么动。我见过有人全自动确认结果脚本把配置文件移动错了目录所以 approval_policy 设成 on-request 这个习惯真的能救你。7. 常见问题与排查技巧实录7.1 环境变量改了没生效怎样才是真正刷新Windows 改完环境变量后已打开的终端不会自动刷新这是最容易踩的坑。最快的刷新方式是用 refreshenv 命令但它是 Chocolatey 带来的函数如果你的机器没装 Chocolatey就完全关闭所有终端窗口再重新打开——注意是所有窗口包括 VS Code 的集成终端。如果还不行注销或重启一次系统。不要在同一个老终端里反复试命令那样永远看不到新配置。7.2 Docker 或 WSL 启动失败先看 Windows 安全日志遇到 Docker Desktop 起不来或者 WSL 报错很多人直接重装其实先查日志更高效。按下 WinR 输入 eventvwr.msc 打开事件查看器在“Windows 日志-系统”里按来源筛选找名字包含 Docker、WSL、Hyper-V 的记录错误级别的事件一般会给出明确原因比如虚拟化未开启、内存不足、某个服务没启动。另一个常用命令是wsl --status它会显示 WSL 的当前状态和默认版本。如果显示内核过旧执行 wsl --update 更新内核大概率就能解决。排查顺序是虚拟化 - WSL 状态 - Docker 日志 - Windows 日志按这个链路走基本不会走弯路。7.3 pip、npm、docker 拉取慢怎么处理下载慢的问题本质是源的问题。pip 换镜像参看 3.2npm 同理把 registry 改成国内镜像Docker 用 5.3 的 registry-mirrors。这里要特别提醒不要因为拉取慢就随便搜一个“加速地址”填进去有些第三方公共镜像源本身也在变出了问题很难排查。优先使用你自己注册的容器镜像服务的专属地址稳定且有保障。7.4 Codex 或 AI 插件连不上服务、识别不了项目怎么办Codex 或 AI 插件如果报认证失败先检查登录状态重新登录一次。如果插件在编辑器里不响应先确认有没有切换过项目目录——AI 插件只对打开的工作区有感知在空白文件里问“帮我看看项目”它当然不知道你在讲什么。还有一类问题是网络代理导致的这个就看你自己的办公网络环境建议在系统设置里检查代理配置是否和多开工具冲突保持环境干净即可。7.5 高频问题速查表现象最快解决方案python 不是内部或外部命令检查 PATH重开终端WSL 启动报 0x8007019e运行 wsl --update 更新内核Docker Desktop 一直转圈查虚拟化是否开启pip 下载极慢配置 pip.ini 镜像源Java 编译报找不到主类检查 JAVA_HOME 和 PATHGit 提交全部文件被改动设置 core.autocrlf 为 falsenpm 安装卡住换 npm 国内镜像这套环境从零走到 AI 辅助编码我一共走了三遍每次都比上一次快最后一次几乎只花了半个下午。个人体会是Windows 上折腾 AI 编程环境最值钱的不是某个具体软件而是“容器化 子系统”这套底座思维——中间件全容器化系统重装无负担AI 工具按需接入不给工作流添乱。最后再分享一个小技巧环境搭完后把你自己常用的安装命令、配置代码、踩坑记录整理成一个 setup.md 放进 Git 仓库下次换电脑直接照着自己文档跑一遍比任何教程都适合你。后续我准备在这个环境基础上继续扩展 Spring AI 和本地 Agent 框架的实战到时候再接着分享。
返回列表