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

资讯详情

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

Windows AI编程环境搭建指南:从WSL2到Codex全流程

Windows AI编程环境搭建指南:从WSL2到Codex全流程 说真的以前我也觉得在Windows上做AI开发是自找麻烦装个包能踩一圈坑环境变量乱成一锅粥好不容易跑通的脚本换台电脑又废了。但这两年Windows的开发者体验进步非常明显WSL2、Docker Desktop、Windows Terminal这一套组合下来再把AI编程助手接进日常工作流整条链路已经可以做到从零到能跑全程不折腾。这篇东西就是把我重新搭一套Windows AI编程环境的过程完整写出来装什么、为什么这么装、装完怎么验证、碰到问题怎么定位。适合刚入门的新手照着一步步来也适合想把自己那台老环境推倒重来的老手参考少走点弯路。1. 开始之前先把Windows的这些底子整理好这一步看着基础但恰恰是最容易出问题的。很多人后面环境搞乱根子就出在装AI工具之前Windows自己的终端、包管理器、子系统这些底子没打好。1.1 用winget把基础工具一次装齐Windows 10 22H2和Windows 11都自带winget这东西就是Windows官方的包管理器相当于手机上的应用商店。我们不需要去官网一个个下载安装包直接在PowerShell里敲命令就够了。打开PowerShell开始菜单搜PowerShell右键以管理员身份运行先确认版本winget --version能输出版本号就说明可用。然后我用一条命令把这几样装齐winget install Microsoft.PowerShell winget install Microsoft.WindowsTerminal winget install Git.Git winget install Microsoft.VisualStudioCode winget install Docker.DockerDesktop这里每一样都是后面AI编程环境的基石PowerShell 7比Windows自带的Windows PowerShell 5.1好用太多命令兼容、输出格式化、跨平台能力都强AI相关工具很多都要求用新版PowerShell跑。Windows Terminal微软官方终端支持多标签页WSL、PowerShell、CMD可以分页签跑看日志、切环境都方便。Git做AI开发绕不开Codex这类AI编程工具也依赖Git来理解代码变更。VS Code主力编辑器AI插件的生态最全。Docker Desktop后面本地跑Redis、Elasticsearch这些服务要用的。装完记得把Windows Terminal设成默认终端应用设置 - 隐私和安全性 - 开发者选项里也能调再把默认配置文件改成PowerShell 7。这一步不做后面每次开终端都是老旧窗口体验差一半。1.2 WSL2才是AI开发的一线战场但别盲目装很多AI工具、Python包、本地模型推理框架都是Linux优先Windows原生跑总会有各种边界问题。WSL2就是在Windows里跑一个轻量Linux虚拟机底层是真正的Linux内核但又不像传统虚拟机那么吃资源可以和Windows文件系统互相访问。安装命令很简单管理员权限的PowerShell里执行wsl --install它会自动开启需要的Windows功能装好WSL2内核然后让你设置Linux用户名密码。默认装的是Ubuntu够用。装完重启用这个命令确认版本wsl -l -v看到版本号是2就对了。如果显示1手动升一下wsl --set-default-version 2但这里我要泼盆冷水别一上来就把所有东西都塞进WSL里。我的经验是——命令行工具和Python环境留在WSL里跑编辑器操作留在Windows侧。VS Code装Windows版再用Remote - WSL扩展连接进去代码文件放Windows目录也没关系WSL2访问/mnt/c/下的文件虽然比Linux原生文件系统慢但对常规开发影响不大。1.3 环境变量的几个坑越早理解越省事AI编程环境里最容易出问题的就是环境变量。Python装多了、Node装多了、各种SDK路径堆在一起PATH变量长到一屏装不下命令行里敲python结果不知道调的谁家版本。我一般建议两件事第一尽量用用户级环境变量不要动系统级。右键此电脑 - 属性 - 高级系统设置 - 环境变量上半部分就是当前用户的环境变量下半部分是系统的。系统级Path被改坏了整个操作系统都会受影响用户级只影响当前账号安全得多。第二少用setx这类命令直接改Path。很多人图方便用setx追加路径但setx有个坑它会把整个Path重新写一遍超过1024字符的部分会被截断导致原来的路径丢失。我排查过好几次怎么突然命令找不到了的问题最后都发现是setx截断了Path。要临时加路径用PowerShell里的$env:Path ;C:\你的新路径这种只对当前窗口生效不会污染系统。想永久加还是老老实实走图形界面。2. Python环境版本管理、虚拟环境与包源一站搞定AI开发的主力语言就是Python所以这块值得单独拿出来说。但我要先纠正一个常见的错误做法不要直接去python.org下载安装包然后一路Next装完最后在Path里加个Python路径就完事。这么干短期能用长期必乱——你会在某个项目需要Python 3.10、另一个项目需要3.12时痛苦不堪。2.1 为什么我不用系统自带Python装环境Windows系统自带了一个python命令占位符甚至Microsoft Store里也有Python。用这些东西装环境版本是锁死的还不能轻易换更不好管理虚拟环境。AI项目普遍存在版本敏感问题PyTorch有版本要求Transformers有版本要求CUDA相关包还有配套关系。如果没有版本管理和虚拟环境隔离那基本就是装A包把B包搞坏然后花半天时间重装。我的选择是pyenv-win它是pyenv的Windows移植版用来管理多个Python版本。用它你可以随时安装、切换、指定某个项目的Python版本干净利落。2.2 pyenv-win venv 的组合用法安装pyenv-win很简单winget直接来winget install pyenv-win装完重开一个终端执行pyenv --version能看到版本就说明装好了。然后安装Python版本我建议装3.11或3.12这两个版本对主流AI库的兼容性最好pyenv install 3.11.9 pyenv global 3.11.9global是设置默认Python版本。验证一下python --version应该输出Python 3.11.9。如果还是老版本检查一下用户级Path里pyenv的相关路径是否在系统Python之前。接下来是虚拟环境。Python项目一定要用虚拟环境它是把当前项目的依赖隔离在一个独立目录里不会和全局环境互相污染。在项目目录下执行python -m venv .venv激活它.\.venv\Scripts\Activate.ps1之后你pip装的所有包都只在.venv里生效。VS Code打开这个项目时如果装了Python插件它会自动识别.venv并选中作为解释器非常顺畅。2.3 pip换源、uv的提速思路Windows上Python下载包的速度有时很不稳定几MB的包等半天AI相关的包动不动就是几百MB体验很糟糕。一个常规优化是配置国内pip源。在用户目录下建一个pip文件夹里面放一个pip.ini文件写成这样[global] index-url https://pypi.tuna.tsinghua.edu.cn/simple trusted-host pypi.tuna.tsinghua.edu.cn这样pip默认就从清华源拉包速度会明显改善。如果你用阿里云、中科大等源也一样选一个稳定的就行。还有一个更现代的替代方案是uvRust写的Python包管理器安装依赖速度比pip快一个数量级pip install uv之后你可以用uv venv创建虚拟环境uv pip install装依赖也可以用它来做Python版本管理兼容pyvenv。不过我的建议是先把pipvenv这套标准流程跑熟练再上uv提速不然概念混在一起容易乱。2.4 验证Python环境的命令清单环境装完不是就结束了我习惯跑一遍命令检查所有环节python --version pip --version pyenv versions再跑一个sanity check确认能正常importpython -c import sys; print(sys.executable)看到输出的是.venv路径下的python说明虚拟环境生效了。之后再装你最常用的AI库pip install numpy pandas requests jupyter这一套跑通Python开发环境就稳了。3. 容器和本地服务Docker Desktop、Redis、Elasticsearch的Windows落地很多AI应用的落地不光是Python脚本还需要数据库和搜索引擎。本地开发环境里最常用的就是Redis做缓存、Elasticsearch做全文检索/向量检索它们都和AI服务的架构强相关。而把它们跑在Windows上最高效的方式不是去下载Windows安装包而是用Docker Desktop把整个服务隔离在容器里。3.1 Docker Desktop在Windows上的正确姿势WSL2后端Docker Desktop装完后第一次启动会让你选后台引擎。一定选Use WSL 2 instead of Hyper-V这个选项在Settings - General里。为什么WSL2后端启动容器更快、占用内存更小、和Linux开发环境保持一致性。你在WSL2里能跑的东西容器里基本也能跑你在容器里配置的东西和接下来要用的AI工具链天然兼容。Hyper-V模式也不是不行但它在Windows家庭版上受限制而且资源占用明显偏高。选完WSL2后还要在Settings - Resources里分配一下CPU和内存尤其注意WSL总内存上限。默认设置是使用所有可用内存这对一台8GB内存的笔记本来说非常致命——Docker一跑整个系统就卡死了。我一般给WSL2设到4GB或6GB上限留出余量给Windows自己。3.2 用docker compose把Redis和Elasticsearch跑成本地开发服务不要用docker run一个个启动服务那样依赖关系、端口、卷都难管理。在项目根目录放一个docker-compose.yml一次启动相关服务。我常用的一个最小配置大概长这样version: 3.8 services: redis: image: redis:7-alpine container_name: dev-redis ports: - 6379:6379 volumes: - redis-data:/data restart: unless-stopped elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.14.3 container_name: dev-es environment: - discovery.typesingle-node - xpack.security.enabledfalse - ES_JAVA_OPTS-Xms512m -Xmx512m ports: - 9200:9200 volumes: - es-data:/usr/share/elasticsearch/data restart: unless-stopped volumes: redis-data: es-data:在docker-compose.yml所在目录执行docker compose up -d等待拉取镜像并启动然后确认状态docker compose ps看到两个服务都是Up状态就成功了。测试Redisdocker exec -it dev-redis redis-cli ping输出PONG就正常。测试Elasticsearchcurl http://localhost:9200能看到带cluster_name的JSON就说明可用。3.3 端口映射、持久化卷和资源配置的注意事项我踩过几个坑专门列出来端口冲突是高频问题。本机装了原生Redis或者Elasticsearch的会先把6379或9200占掉Docker端口映射就会失败。启动前先检查netstat -ano | findstr 6379看到已有进程占用就先停掉本机服务或者改docker-compose里的映射端口比如左边映射成16379:6379代码里连接16379。数据持久化必须用卷。容器一旦删除容器内文件系统里的数据就全没了。上面配置里的redis-data、es-data都是命名卷它们由Docker管理容器删除后数据还在下次用同名卷启动数据自动接上。Elasticsearch很吃内存不给JVM设上限会把宿主内存耗光。上面ES_JAVA_OPTS里设了512MB对于本地开发足够了。生产环境另说本地千万别追求高性能。如果你要跑Java方向的AI项目比如Spring AI应用JDK17是刚需。可以用winget装Eclipse Temurin发行版winget install EclipseAdoptium.Temurin.17.JDK装完java -version确认是17。Spring AI这个框架官方最低要求就是Java 17它可以把OpenAI、Ollama这些大模型接口统一封装成一套Java调用方式适合熟悉Spring生态的人做AI应用开发。4. AI编程工具链从编辑器插件到Codex Agent前面把运行环境搭起来了接下来是重头戏怎么把AI编程能力真正接入日常工作流。我这里说的AI编程环境不是仅指跑个AI聊天网页版或者问两句话而是让AI能看懂你的项目、能改你的代码、能执行命令、能验证结果。4.1 VS Code里的AI插件组合最少装这几个VS Code装好后Extensions面板里搜下面几个插件按需装Python扩展ms-python.python提供Python语言支持、解释器选择、调试。Pylance配合Python扩展做类型检查AI生成的代码质量能靠它兜底。GitLens更直观地看代码历史和变更AI Agent改完代码后要review这个插件能帮你看出改动是否合理。GitHub Copilot目前最成熟的AI结对编程插件单行补全、多行生成、聊天问答都支持。需要订阅或试用授权。Continue开源免费的AI编码助手可以接OpenAI、Anthropic、本地模型等多种后端。如果你不想订阅Copilot这个是很实在的替代品。安装命令也可以在窗口里直接敲code --install-extension ms-python.python code --install-extension ms-python.vscode-pylance code --install-extension eamodio.gitlens code --install-extension github.copilot code --install-extension continue.continue装完之后用CtrlShiftP打开命令面板搜索Python: Select Interpreter选择你项目里的.venv解释器。这样AI生成的代码、自动补全、还有调试都会基于这个环境不会出现电脑上明明装了包但编辑器和报错找不到的诡异情况。4.2 Codex在Windows上的安装与用法Codex是OpenAI推出的AI编程智能体和传统代码补全很不一样。它是给你整个任务然后自己读取仓库、规划步骤、改多个文件、跑命令、看报错最后给出改动结果。现在有CLI命令行版也有桌面版。CLI方式安装很简单前提是装了Node.js 18以上。Node.js可以用winget装winget install OpenJS.NodeJS.LTS然后全局安装Codexnpm install -g openai/codex验证codex --version首次使用需要认证。执行codex回车按照提示登录ChatGPT账号或者配置OpenAI API Key。我建议把密钥放到环境变量里不要在代码库中明文保存$env:OPENAI_API_KEY 你的API Key想永久配置用图形界面加一条用户级环境变量OPENAI_API_KEY即可。桌面版方面官方已经提供了Windows安装包直接下载exe安装。桌面版的好处是可视化选择要处理的目录直接在面板里和AI对话看到它改动文件的全过程。实际使用中我更喜欢CLI的轻量但桌面版对新手更友好两种都可以装互不干扰。Codex在工作时会读取仓库根目录下的说明文件。这个文件是规范和上下文的来源我建议在每个项目根目录放一个AGENTS.md或CODEX.md写明项目结构、构建命令、测试命令、代码风格。比如# 项目说明 这是一个基于 FastAPI 的 AI 接口服务。 ## 常用命令 - 安装依赖pip install -r requirements.txt - 启动服务uvicorn app.main:app --reload - 运行测试pytest tests/ ## 代码风格 - 使用类型注解 - 模块路径使用小写下划线命名有了这个文件Codex就不会瞎猜你的项目怎么启动、怎么测试改出的代码也更容易直接跑通。这属于投入产出比极高的做法。4.3 让AI Agent真正读得懂你的仓库上下文与权限配置很多人用AI编程工具觉得不够聪明其实是没给它足够的上下文。AI Agent能不能高效工作取决于三件事第一是仓库内的说明文件。上面提到的AGENTS.md就是干这个的。第二是你给它指令时提供的信息量。不要说帮我修一下登录逻辑而是说登录接口在app/auth.py问题是用例里验证码过期后还能登录请先写测试复现再修复。第三是权限控制。Codex执行命令时默认会询问你要不要运行这个设计很安全但如果你确定某个目录或者命令是安全的可以在配置里允许自动运行某些命令减少打断。在VS Code里还有一层Continue插件可以把自己的规则写进.continue/config.json指定用哪个模型、系统提示词是什么。比如我写了一个针对团队代码风格的规则让AI助手在生成代码时自动遵循PEP8、变量命名规范等实测生成的代码质量明显提升。4.4 本地大模型运行环境可选Ollama如果你的开发需要离线测试、隐私数据或者不想为每次调用付费本地跑一个大模型是可选的第四块拼图。我常用Ollama它把模型下载、运行、API暴露都做得非常傻瓜化。安装依然可以用wingetwinget install Ollama.Ollama装完拉一个模型试试ollama pull qwen2.5:7b ollama run qwen2.5:7b跑起来后它默认监听localhost:11434任何应用程序都可以通过OpenAI兼容的API调用它。VS Code的Continue插件配置里可以直接选择Ollama作为模型提供方实现完全离线的AI补全和对话。这一步对显存和内存有要求7B模型最少8GB内存推荐16GB以上。没有独显的机器也能跑就是速度慢一些。5. 从零到能用完整的验证路径与问题排查环境搭完不能算完一定要做一次完整验证。我每次搭新环境都有一个固定的冒烟测试清单顺着跑一遍哪里断就修哪里基本能把90%的隐藏问题暴露出来。5.1 新机器上的一次性冒烟测试按照这个顺序验证每一条都通过再继续往下终端基础Windows Terminal打开默认进入PowerShell 7执行$PSVersionTable.PSVersion主版本号不低于7。WSL可用wsl -l -v确认Ubuntu状态是2进入Ubuntu执行cat /etc/os-release能看到发行版信息。Git可用git --version然后git config --global user.name和user.email配置一下否则AI Agent提交代码时会报错。Python环境进入项目目录激活.venvpython --versionpip list能看到刚安装的包。Dockerdocker compose up -d然后docker ps看两个容器都在运行Redis和ES的测试命令都能返回正常结果。AI工具执行codex --version然后在项目里输入一个最简单的任务比如在项目根目录创建一个hello.py打印hello world看它是否能完成创建。VS Code打开项目右下角解释器显示.venv按CtrlShiftP搜索Continue: Open Chat能正常对话。这套流程跑完说明从操作系统到AI助手整条链路已经打通了。之后你再做实际项目遇到问题就相对可控了。5.2 WSL2内存吃满、Docker启动失败等高频问题我在搭环境过程中遇到的问题归纳起来大概这些WSL2内存占用越来越高WSL2默认会吃掉最多50%物理内存还不会自动释放。解决办法是在用户目录下建一个.wslconfig文件[wsl2] memory4GB processors4 swap2GB改完在PowerShell里执行wsl --shutdown重启WSL使配置生效。这个文件同时可以限制CPU核数防止后台任务把电脑跑满。Docker Desktop一直启动失败先检查Windows功能里虚拟机平台和适用于Linux的Windows子系统是否启用。在管理员PowerShell里执行dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart另外确认BIOS里虚拟化已开启任务管理器 - 性能 - CPU里能看到虚拟化: 已启用。python命令还是旧版本装了pyenv后仍执行到系统Python。检查用户级Path里有没有%USERPROFILE%\.pyenv\pyenv-win\shims并确认它排在系统Python路径前面。或者干脆在PowerShell里执行pyenv rehash再重开终端。npm全局装Codex后提示找不到命令多半是npm全局路径不在Path里。检查npm config get prefix把输出的目录加到用户级Path。5.3 我建议的环境安装顺序和版本组合最后晒一下我建议的安装顺序按这个顺序做每一步都可以及时验证不会出现全装完了不知道哪里坏了的情况Windows更新到最新重启。装Windows Terminal、PowerShell 7、Git三分钟搞定。开WSL2装Ubuntu重启。装pyenv-win选好Python版本创建测试项目的虚拟环境。装Docker Desktop配置WSL2后端启动Redis和Elasticsearch容器。装VS Code装Python、Pylance、GitLens、Continue插件。装Node.js全局安装Codex并完成认证。可选装Ollama拉本地模型配置Continue连接Ollama。版本组合方面我现在主力是Python 3.11.9 Node.js 22 LTS Docker Desktop最新稳定版 VS Code最新版 Codex最新CLI这套组合实测下来比较稳。Python 3.12也能用但部分AI库的预编译包在3.12上偶尔会有轮子缺失3.11目前是最没脾气的选择。Node.js就用LTS版别追最新版AI相关CLI工具对LTS的兼容性做得最好。我个人还有个习惯每次搭好环境把上面这份安装清单复制一份存到云端笔记里标注好每一步的关键输出。下次换新电脑或者同事让我帮忙排问题时直接照着清单排查比自己瞎猜快很多。环境这东西不是搭好就一劳永逸的它更像一个需要定期维护的工作台——把底子打好后面的所有AI工具和项目才能安安稳稳地跑在上面。
返回列表