先说结论:Windows现在完全可以作为AI编程的主力平台,不用再羡慕Mac和Linux用户。我在这台主力机上把Python环境、容器服务、大模型调用和AI编码助手全部跑通,前前后后折腾了大概一个周末,期间踩了不少坑,也总结出一套相对稳定的搭建路径。这篇东西就是你照着做一遍就能用的操作手册,不是理论分析,每一行命令都是我在Windows 11上实测通过的。
这篇文章适合谁?刚入手AI编程的新手,想在Windows上把环境一次装对的开发者,以及准备接大模型API、想跑本地模型的同学。我会沿着“先装基础工具链 → 再配Python环境 → 然后上Docker和中间件 → 最后接入AI工具”的顺序来写,遇到容易出问题的点都会单独拎出来说明。
1. 整体思路:为什么从零搭建,而不是直接一键安装全家桶
很多人觉得AI编程环境无非就是装个Python、装个IDE,再装个插件就完事了。实际上等你真正要跑大模型接口、部署向量数据库、用容器隔离服务、甚至本地推理一个小模型时,就会发现每个环节都有可能踩坑。直接装全家桶看似省事,出了问题你不知道是哪一层坏了。从零一步步搭,每个环节都验证过,后续排错效率反而高得多。
我的整体选型是这样的:
| 层级 | 选用方案 | 理由 |
|---|---|---|
| 操作系统 | Windows 11 Pro 23H2 | 对WSL2和Docker Desktop支持最成熟 |
| 终端 | Windows Terminal | 支持多标签、兼容PowerShell和WSL |
| 包管理 | winget + conda | 系统级和Python环境级分开管理 |
| Python环境 | Miniconda | 环境隔离方便,AI项目环境说换就换 |
| 编辑器 | VS Code + 插件 | 轻量、插件生态全、AI插件兼容性好 |
| 容器 | Docker Desktop | 跑Redis、Elasticsearch等中间件最省心 |
| AI工具 | Ollama + 大模型API + AI编码插件 | 兼顾本地推理和云端大模型两条路线 |
这里有个关键选择要解释一下:Python环境我选Miniconda而不是直接装Anaconda。Anaconda太大,自带一大堆你用不到的包,Miniconda只是轻量环境管理,需要什么再装什么。AI项目非常吃环境隔离,今天这个项目要Python 3.10,明天那个要3.11,用conda建独立环境是成本最低的方案。
另一个选择是Docker Desktop而不是直接用WSL2裸奔。Docker的好处在于服务级别的隔离,Redis、Elasticsearch这些中间件跑在容器里,不污染Windows宿主机,删除也干净。后面我会详细说怎么配Docker的镜像加速,不然拉镜像能等哭。
2. 动手前的基础准备:把地基打牢
2.1 确认系统版本和虚拟化状态
第一步先确认系统版本。Win+R 输入winver,确认是Windows 10 21H2以上或者Windows 11。如果你是Windows 10老版本,建议先升级系统,否则后面WSL2和Docker会非常痛苦。
然后确认虚拟化有没有开。打开任务管理器 → 性能 → CPU,看右下角“虚拟化”是否显示“已启用”。如果显示“未启用”,需要进BIOS开启Intel VT-x或者AMD-V。这一步不做,Docker Desktop根本装不上WSL2后端。
确认完虚拟化之后,用管理员身份打开PowerShell,输入下面命令启用WSL功能:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart然后重启系统。重启后建议把WSL更新到2.x版本:
wsl --update wsl --set-default-version 2如果你不太确定自己当前的WSL版本,可以跑wsl --status查看。这个命令输出里能看到默认版本和内核信息,确认是2.x就可以往下走了。
2.2 安装Windows Terminal和Git
Windows Terminal不只是好看,它解决了一个实际问题:编码问题。老版cmd和PowerShell在某些中文路径、中文输出场景下乱码概率高,Windows Terminal对UTF-8的支持好得多,后面跑Python输出中文日志时你就能体会到差别。
安装直接用winget:
winget install Microsoft.WindowsTerminal winget install Git.GitGit装完之后,建议设置几个全局变量,避免中文路径和换行符的坑:
git config --global user.name "你的名字" git config --global user.email "你的邮箱" git config --global core.autocrlf true git config --global init.defaultBranch maincore.autocrlf true在Windows上是必须的,它会在提交时把CRLF转成LF,检出时再转回来。不设置这个,在Windows上克隆下来的Shell脚本经常报/bin/bash^M这类错误,你排查半天才发现是换行符的问题。
2.3 配置包管理器镜像源
这一步很多人会忽略,但对下载速度影响巨大。pip、conda、npm默认源在国外,国内网络环境下下载大包极其折磨。我习惯在装完环境后第一时间把源切到清华镜像,这一步能省下大量时间。
pip换源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set global.trusted-host pypi.tuna.tsinghua.edu.cnnpm换源:
npm config set registry https://registry.npmmirror.comconda换源我放到下一节讲,因为跟Miniconda安装绑定在一起。
3. 核心环节一:Miniconda和Python虚拟环境
3.1 Miniconda安装要点
去Miniconda官网下载Windows x86_64安装包,注意选Python 3.11或3.12版本对应的安装包。安装时有几个选项要特别注意:
- “Install for”选择“All Users”,避免权限问题
- 安装路径不要带空格和中文,建议直接
C:\miniconda3 - “Add Miniconda3 to my PATH environment variable”这个选项,安装程序默认不勾选,建议直接取消。因为conda自己提供“Anaconda Prompt”入口,加到系统PATH反而容易跟其他Python产生冲突
安装完成后,打开Windows Terminal,先执行一次conda init powershell初始化Shell,然后重启终端。这样能让你直接在普通的PowerShell窗口里用conda命令,不用每次打开Anaconda Prompt。
3.2 conda换源和环境创建
换源执行:
conda config --set show_channel_urls yes conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --set channel_alias https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud然后创建一个专用的AI环境,这一步是核心操作:
conda create -n ai_env python=3.11 conda activate ai_env进入环境后,把常用依赖一次性装好。
pip install jupyter notebook pip install requests httpx pip install openai pip install pypdf pip install faiss-cpu pip install pandas numpy matplotlib关于Python版本我多说一句:目前很多AI SDK库对Python 3.12的兼容性在逐步完善,但保守方案还是用3.11,踩坑概率最低。特别是如果你打算跑一些老项目,3.11比3.12稳得多。3.10也可以,但3.11性能稍有提升,除非项目明确要求3.10,否则直接3.11。
3.3 验证Python环境是否可用
装完环境后,不要急着往下走,先花两分钟验证一下,避免后面把问题怪到错误的地方。
python --version pip --version conda info --envs再跑一段真正调用第三方库的代码,确认库装好了:
import openai import pandas as pd print("AI environment is ready")如果这段代码能正常输出,说明Python环境是健康的,接下来装的工具就算出问题也只能是工具自己的问题,排错范围就缩小了。
4. 核心环节二:VS Code编程环境与AI插件
4.1 VS Code安装和核心配置
VS Code用winget装:
winget install Microsoft.VisualStudioCode安装时勾选“添加到PATH”和“添加到资源管理器右键菜单”,后面你右键文件夹就能直接用VS Code打开,这个体验差别很大。
装完先打开设置面板(Ctrl+,),把下面几条写入settings.json:
{ "editor.fontSize": 16, "editor.formatOnSave": true, "files.eol": "\n", "terminal.integrated.defaultProfile.windows": "PowerShell", "python.defaultInterpreterPath": "C:\\miniconda3\\envs\\ai_env\\python.exe", "python.terminal.activateEnvironment": true }files.eol设为\n能避免在Windows上写Shell脚本时出现换行符问题,这是我从实际踩坑中总结出来的,强烈建议设置。python.defaultInterpreterPath直接指定到conda环境的Python路径,避免VS Code自动选中全局Python导致包找不到。
插件市场搜下面几个,装完就能用了:
- Python(微软官方出品,包含Pylance语言服务)
- Jupyter(在编辑器里跑.ipynb文件)
- Docker(管理容器和镜像的可视化工具)
- GitLens(Git历史查看神器)
- 以及任意一个AI辅助编码插件,比如GitHub Copilot、Codeium等,我后面单独讲AI工具选型。
4.2 在VS Code里跑通第一个AI脚本
环境装好了,总得验证一下全链路通不通。写一个最简单的调用大模型API的脚本,这个脚本我建议保留,后续排查问题很有用。
假设你用的是OpenAI兼容接口,先安装openai库,然后写:
from openai import OpenAI client = OpenAI( api_key="你的API密钥", base_url="你的API基础地址" ) response = client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": "你是一个乐于助人的AI助手。"}, {"role": "user", "content": "用一句话介绍你自己。"} ] ) print(response.choices[0].message.content)注意这里的base_url,现在很多大模型服务商都提供OpenAI兼容格式的接口,你只需要把base_url换成服务商提供的地址,代码结构完全不用变。这个兼容特性极大降低了切换模型的成本。
跑通这个脚本,意味着你的Python环境、网络通联、API认证整条链路都没问题,后面再装其他AI工具就是锦上添花了。
4.3 AI编程插件的选择心得
AI编程插件现在选择很多,我的建议是别贪多,装一个主力的就够。装太多反而互相干扰,有时候多个插件同时补全代码,编辑器都会卡。
我实测下来的感受是:如果日常写Python和JS,GitHub Copilot的中文注释理解、上下文感知目前还是第一梯队。如果不想付费,Codeium和通义灵码也够用。重点在于要知道AI编码插件的使用技巧,不是装完就会:
- 写函数前先写清楚英文或中文注释,补全质量会明显提升
- 让AI补全重复性代码块时,先写四五行示例,让它模仿风格
- 遇到复杂逻辑不要指望一次性补全,先让AI生成框架,再手动填充细节
AI编码插件的本质是“比你更懂代码库的自动补全助手”,它需要上下文越清晰,输出才越准确。我见过太多人装了Copilot又说它“弱智”,其实多数时候是提示词太模糊了。
5. 核心环节三:Docker Desktop和中间件部署
5.1 Docker Desktop安装全过程
Docker在Windows上的版本很关键,建议直接用Docker Desktop官方安装包,它会把Docker Engine、Kubernetes、Compose全都集成好。下载时注意选择对应架构的安装包,一般就是AMD64版本。
安装前再次确认WSL2已经就绪,因为Docker Desktop默认使用WSL2后端,比旧版的Hyper-V后端启动快、资源占用低。安装向导里有一个“Use WSL 2 instead of Hyper-V”的勾选框,默认是勾上的,不要取消。
安装完启动Docker Desktop,第一次启动可能比较慢,大概等1到2分钟,看到鲸鱼图标不再跳动就说明引擎起来了。用命令验证:
docker version docker compose version如果docker version报错,多半是WSL2内核没更新,重新执行一遍wsl --update再重启就好。
5.2 镜像加速配置
Docker Desktop在Windows下配置镜像加速,位置在Settings → Docker Engine,这是很多人找半天找不到的地方。打开后能看到一个JSON配置文件,修改registry-mirrors字段:
{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.1panel.live" ] }修改后点击“Apply & Restart”。这一步做完,拉取公共镜像的速度会有质的提升。我自己实测下来,用这个配置拉redis镜像,从几十KB每秒提升到了几MB每秒。
5.3 用Docker部署Redis和Elasticsearch
装Docker最大的用途就是跑中间件。Redis在Windows上原生支持一直不稳定,官方也不提供Windows安装包,Docker容器是当前Windows上跑Redis的最优解。
启动Redis:
docker run -d --name redis-server -p 6379:6379 redis:7.2启动后验证:
docker ps docker exec -it redis-server redis-cli ping如果返回PONG,说明Redis已经正常工作了。
Elasticsearch的部署需要注意JDK版本问题。ES 8.x自带了捆绑的JDK,但如果你用ES 7.x,对Java环境和系统参数比较敏感。推荐直接用ES 8.x,一条命令搞定:
docker run -d --name es-server -p 9200:9200 -e "discovery.type=single-node" -e "xpack.security.enabled=false" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" docker.elastic.co/elasticsearch/elasticsearch:8.10.0这里discovery.type=single-node是单机模式,不需要配置集群发现,适合本地开发。第一次冷启动会比较慢,等大约30秒后访问http://localhost:9200,能看到返回JSON信息就对了。
5.4 Docker资源限制配置
AI开发经常要同时跑容器和本地模型,资源很容易吃紧。Docker Desktop在Settings → Resources里可以设置CPU和内存上限,我的建议是:
- 内存给到8GB以上,但不要超过本机物理内存的70%
- CPU给4核以上
- Swap保持默认1GB
如果你要跑ES、MySQL、Redis、Nginx一整套中间件,还得考虑给Docker预留端口冲突排查的时间。端口被占用是非常常见的启动失败原因,下面排查部分会专门说。
6. 大模型本地推理与API调用全流程
6.1 Ollama安装和模型拉取
AI编程环境只调云端API显然不能满足所有场景,有些项目需要在本地跑模型做离线推理。Ollama是目前在Windows上跑本地大模型最省事的工具,安装包直接下载安装,装完在终端里就能用。
下载安装之后先确认服务:
ollama --version ollama serve然后拉一个适合本地推理的中小模型。我的推荐是Qwen2.5 7B,原因是它在中文任务、代码理解上表现均衡,显存和内存占用也比较友好:
ollama pull qwen2.5:7b拉取完成后试一下对话:
ollama run qwen2.5:7b "帮我写一个Python快速排序"这里有个经验分享:对于配置一般的电脑(16GB内存、无独显),跑7B模型是可以接受的,但别指望速度和云端比。如果只是做代码补全和简单问答,3B模型响应更快。本地推理的意义不在于替代云端大模型,而在于数据不出本机、无网络延迟、不用按Token计费。
6.2 通过Python调用Ollama
直接用Ollama的命令行交互只是第一步,真正的AI编程环境需要在代码里调用它。Ollama提供了兼容OpenAI的API接口,你可以在任何语言里通过HTTP请求调用:
import requests import json response = requests.post( "http://localhost:11434/api/generate", json={ "model": "qwen2.5:7b", "prompt": "用Python写一个装饰器,统计函数执行时间", "stream": False } ) result = response.json() print(result["response"])这个API默认绑定localhost,不用密钥,完全离线,数据不出本机。在需要处理敏感数据或想控制成本的场景下非常实用。
6.3 AI编程Agent工具链
2026年了,AI编程环境拼的不只是自动补全,还有能自主执行多个步骤的AI Agent工具。目前比较常见的是Codex桌面版这类工具,可以直接在Windows桌面运行,能读取你的代码库、执行命令、改文件,本质上是一个会写代码的“初级开发实习生”。
这类Agent类工具我用下来的建议是:
- 首次使用时给它的是一个“只读预览模式”,让它先看代码库结构,别一上来就允许它随便改文件
- 每一步操作要明确限制范围,比如“只修改src目录下的文件”,避免它改坏配置文件
- 代码生成完成不代表结束,必须自己过一遍CRUD逻辑
AI Agent本质上是在你监督下自动执行重复性编码任务,用得好的话能把编码效率提升一个档次,但完全放权还是等等再说。
7. 常见问题排查与避坑实录
7.1 conda命令闪退或找不到
PowerShell下输入conda命令后窗口闪退,十有八九是环境变量没初始化。解决办法是重新执行:
conda init powershell然后完全关闭终端窗口,重新打开。如果还是闪退,检查Miniconda安装路径是否包含特殊字符,包含中文或空格的话建议重装到纯英文路径。
7.2 PowerShell脚本执行策略受限
跑某些安装脚本时提示“禁止运行脚本”,这是因为Windows默认的ExecutionPolicy是Restricted。临时放开,只对当前用户生效:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser这个命令执行后当前用户的脚本策略会放宽,但不会影响到系统安全设置,属于开发机器的常规操作。
7.3 Docker启动失败
Docker Desktop启动后一直在Starting状态,优先排查WSL2:
wsl --status wsl --updateWSL版本是1.x的话必须先升到2.x。另外检查BIOS虚拟化是否开启,这一步经常被忽略。如果虚拟机平台没启用,Docker Desktop会在日志里报错说找不到虚拟化后端。
7.4 Redis/Elasticsearch端口被占用
启动容器时提示端口占用,优先查什么程序占了端口:
netstat -ano | findstr "6379"看到对应的PID后,继续查是哪个进程:
tasklist | findstr "PID号"如果是无关程序,直接结束进程或者改容器映射端口,比如改成6378。我习惯本地开发统一用默认端口,冲突了就直接去服务管理器停掉占用服务,这样才能保证代码里写的连接地址不用改来改去。
7.5 Elasticsearch启动后中文分词问题
ES容器跑起来了,但搜索中文效果差,大概率是没装IK分词器。IK分词器需要匹配ES版本,下载对应release包后进容器安装或者用Dockerfile自定义镜像。如果你只是本地开发,可以用es默认的standard分词器先用着,正式做中文检索项目再上IK。
7.6 环境变量混乱导致Python版本错乱
Windows上最容易翻车的就是系统里存在多个Python。装了Python官网版本,又装了Anaconda,还开了WSL,终端里一跑python --version,出来的版本全凭运气。
解决方案是:手动检查系统PATH,把非conda管理的Python路径全部移除,只保留Miniconda相关的路径。然后在VS Code里明确指定解释器路径(前面settings.json配置里我们已经做了)。这样不管终端里还是编辑器里,执行的Python都是同一个,不会出现“明明装了包却import不到”的玄学问题。
7.7 常见问题速查表
| 现象 | 排查方向 | 解决方案 |
|---|---|---|
| conda命令闪退 | 环境变量、初始化状态 | 执行conda init后重启终端 |
| Docker启动失败 | WSL版本、虚拟化状态 | wsl --update,确认BIOS开启VT-x/AMD-V |
| docker拉镜像超时 | 镜像源不可用、网络波动 | 配置registry-mirrors,换可用加速地址 |
| pip安装极慢 | 默认官方源 | 切换到清华镜像源 |
| 容器端口冲突 | 本机端口被占用 | netstat查占用进程,改端口或停进程 |
| Python版本错乱 | PATH中有多个Python | 清理PATH,VS Code指定解释器 |
| ES启动即退出 | 内存不足、JDK版本不匹配 | 调整ES_JAVA_OPTS,使用ES捆绑JDK版本 |
| Windows Terminal中文乱码 | 终端编码问题 | 设置chcp 65001,改用Windows Terminal默认UTF-8 |
8. 收尾:让这套环境成为你的日常开发底座
环境搭好只是开始,我用了一个星期之后,已经把这套组合完全融入了日常工作流。基本流程是这样的:早上打开电脑,启动Docker Desktop,让Redis和ES容器自动运行,然后用VS Code打开项目,PowerShell里conda activate ai_env进入Python环境,需要本地推理的时候跑Ollama对话,需要接云端大模型的时候就跑API脚本。整个过程没有打开过第三方工具,所有操作在Windows Terminal + VS Code里完成。
个人经验里还有几条值得分享:
第一,把常用命令保存成一个PowerShell脚本文件,放在用户目录下。比如启动中间件、激活环境、查看日志这些操作,别每次都手敲。我自己写了一个dev.ps1,里面封装了dev redis start、dev es start这类简短命令,省下大量重复操作时间。
第二,VS Code的配置文件最好同步一下,用Settings Sync登录账号同步,换机器的时候五分钟就能恢复所有插件和配置。我是吃过这个亏的,重装系统后花了半个下午重新配环境。
第三,也是最重要的,环境干净是最大的生产力。不要图省事把所有库都装到base环境里,AI项目一律独立建env,每个项目一个环境,炸了直接删除重来,不影响全局。
把这篇文章里所有步骤走完,你的Windows机器就是一台能跑Python、能跑容器、能接大模型API、能本地推理的完整AI开发工作站了。后续想往哪个方向深入,都有稳固的地基在。