☰
Windows11 用 WSL2 装 Ubuntu 配深度学习环境:VScode + Claude Code 接 TaoToken 统一 Key
2026/10/3 12:09:18 网站建设 项目流程

1. Windows11 下 WSL2 装 Ubuntu 到底解决了什么问题

如果你在 Windows11 上做深度学习,大概率遇到过这种局面:想跑一个开源项目,README 里写着conda env create -f environment.yaml,结果里面一堆linux-64的包在 Windows 上根本装不上;想用 ROS 做机器人开发,官方直接说只支持 Ubuntu;想用 Claude Code 这类命令行 AI 编程工具,它在 Windows 原生终端里各种路径和权限问题。这就是我当初决定折腾 WSL2 的原因。

WSL2 全称 Windows Subsystem for Linux 2,是微软在 Windows 里内置的一个轻量级 Linux 运行环境。它和传统虚拟机最大的区别是:它直接用 Windows 的 Hyper-V 虚拟化层跑一个真实的 Linux 内核,启动只要一两秒,内存占用按需分配,还能直接访问 Windows 的文件系统。对做深度学习的人来说,最关键的一点是它支持 GPU 直通——你在 WSL2 的 Ubuntu 里跑 PyTorch,能直接调用 Windows 主机上的 NVIDIA 显卡,性能损失很小。

这套方案适合谁?我总结下来是三类人:第一类是在 Windows 上做开发但需要 Linux 工具链的,比如你要用 gcc、make、ssh、Docker;第二类是做深度学习或机器人开发,需要复现 Linux 环境下的开源项目;第三类是已经在用 Claude Code、Cursor 这类 AI 编程工具,但被多平台密钥管理搞得很烦的。这篇文章会把整条链路走完:从 WSL2 安装 Ubuntu,到配置 Miniconda 和 PyTorch,再到 VSCode Remote-WSL 远程开发,最后把 Claude Code 的 Base URL 和 API Key 统一接到 TaoToken 通道上,解决多密钥分散的问题。

我试过直接在 Windows 上装 CUDA 和 PyTorch,也试过双系统,最后发现 WSL2 是平衡性最好的选择。双系统切换太麻烦,虚拟机性能又太差,WSL2 既能用 Windows 的 Office、微信、游戏,又能随时开一个 Ubuntu 终端跑训练脚本。下面我把每一步的命令和踩过的坑都写清楚,你照着做基本能一次跑通。

2. TaoToken 统一 Key 前置准备:为什么需要它

在讲具体配置之前,先说说为什么要在 Claude Code 里接 TaoToken。Claude Code 是 Anthropic 出的命令行 AI 编程工具,默认走 Anthropic 官方 API。但实际用起来有几个痛点:一是官方 API 对国内访问不友好,经常超时;二是如果你同时用 DeepSeek、通义千问等多个模型,每个都要单独配 Key、单独改 Base URL,切换起来很麻烦;三是 Claude Code 的配置分散在环境变量、settings.json、CC Switch 好几个地方,WSL 和 Windows 两边还不互通。

TaoToken 在这里扮演的角色是一个统一的 API 接入层。它提供兼容 Anthropic 协议的接口,你只需要把 Claude Code 的ANTHROPIC_BASE_URL指向 TaoToken 的地址,把ANTHROPIC_AUTH_TOKEN换成 TaoToken 的 Key,就能在一个通道里调用多个模型。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 端点是 https://taotoken.net/api ,注意 API 地址后面不加 UTM 参数。

你需要先做两件事。第一,注册账号并拿到 API Key。登录后进入控制台,在 API Keys 页面创建一个新的 Key,复制保存好,这个 Key 只显示一次。控制台地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API Keys 管理页面是 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。第二,确认你要用的模型 ID。TaoToken 支持多种模型,你可以在模型对话页面先测试一下连通性,地址是 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。

这里要强调一个关键点:Claude Code 读取的是ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN这两个环境变量。TaoToken 的 Anthropic 兼容端点就是https://taotoken.net/api,你把它填到 Base URL 里,Claude Code 就会把所有请求发到 TaoToken,由 TaoToken 转发到对应的模型。这样你就不需要为每个模型单独配一套环境变量了。

如果你打算长期用 Claude Code 做编码和 Agent 任务,可以看一下 Coding Plan,地址是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,它针对高频编码场景做了额度优化。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,里面有各工具的详细配置说明。Claude Code 的专用接入页是 https://taotoken.net/ClaudeCodeAnthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,建议配置前先扫一眼。

3. WSL2 安装 Ubuntu 与深度学习环境可复制配置

这一章是整篇文章的核心,我会把 WSL2 安装、Ubuntu 初始化、Miniconda、PyTorch、VSCode Remote-WSL 的配置全部给出来,你直接复制命令执行就行。

3.1 开启 Windows 虚拟化功能并安装 WSL2

首先在 Windows11 里开启三个功能。按Win + R输入optionalfeatures打开「启用或关闭 Windows 功能」,勾选以下三项:Hyper-V、适用于 Linux 的 Windows 子系统、虚拟机平台。勾选后重启电脑。

重启后以管理员身份打开 PowerShell,执行下面的命令安装 WSL2 核心组件,注意--no-distribution表示先不装具体发行版:

wsl --install --no-distribution

安装完成后打开 WSL Settings,在网络选项里把网络模式改成 Mirrored,这样 WSL 和 Windows 的网络互通更顺畅。然后在内存和处理器选项里按需调整处理器数量和内存大小,建议内存给到物理内存的一半左右,交换大小给 4GB 到 8GB。

接下来安装 Ubuntu 发行版。默认情况下 WSL 发行版会装在 C 盘,时间长了 C 盘容易爆。用--location参数指定安装到其他磁盘:

wsl --install --distribution Ubuntu-22.04 --location D:\WSL\Ubuntu-22.04

安装完成后会提示你设置 Linux 用户名和密码,这个密码是 sudo 用的,记牢。装完后可以用wsl -l -v查看已安装的发行版和 WSL 版本,确认是 2。

3.2 Ubuntu 换源与基础工具安装

进入 Ubuntu 终端后,第一件事是换国内镜像源,否则 apt 下载速度很慢。备份原文件后编辑:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo nano /etc/apt/sources.list

清空文件内容,粘贴清华源配置(Ubuntu 22.04 代号 jammy):

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

保存后执行更新和基础工具安装:

sudo apt update && sudo apt upgrade -y sudo apt install git curl build-essential -y

然后配置 git 身份:

git config --global user.name "Your Name" git config --global user.email "your@email.com" git config --global init.defaultBranch main

3.3 安装 Miniconda 与 PyTorch

下载 Miniconda 安装脚本并执行:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh chmod +x Miniconda3-latest-Linux-x86_64.sh ./Miniconda3-latest-Linux-x86_64.sh source ~/.bashrc

如果终端提示符前面出现(base),说明 conda 配置成功。接下来创建深度学习虚拟环境,注意 PyTorch 官方编译时用的 CUDA 版本要和你驱动支持的版本匹配,不要凭感觉装 cudatoolkit:

conda create -n dl python=3.10 -y conda activate dl

然后去 PyTorch 官网复制对应 CUDA 版本的安装命令,比如 CUDA 12.1 的:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

安装完成后用下面的脚本验证 GPU 是否可用:

import torch import sys print(f"Python: {sys.version}") print(f"PyTorch: {torch.__version__}") print(f"CUDA available: {torch.cuda.is_available()}") if torch.cuda.is_available(): print(f"CUDA version: {torch.version.cuda}") print(f"cuDNN version: {torch.backends.cudnn.version()}") print(f"GPU count: {torch.cuda.device_count()}") for i in range(torch.cuda.device_count()): print(f"GPU {i}: {torch.cuda.get_device_name(i)}") x = torch.randn(3, 3).cuda() y = torch.randn(3, 3).cuda() z = torch.matmul(x, y) print(f"GPU test passed, result shape: {z.shape}") else: print("CUDA not available, using CPU only")

3.4 VSCode Remote-WSL 配置

VSCode 装在 Windows 上,然后安装 WSL 扩展。安装后按Ctrl + Shift + P,输入WSL: New Window,选择 Ubuntu-22.04。连接成功后状态栏左下角会显示WSL: Ubuntu-22.04。

项目文件建议放在 WSL 的/home/目录下,读写速度最快,也避免/mnt/c挂载点的权限问题。在 WSL 终端里 cd 到项目目录,执行code .就能用 VSCode 打开。部分扩展如 C/C++ 会提示「Install in WSL」,点确认装到 WSL 环境里。

3.5 Claude Code 接入 TaoToken 的 settings.json 配置

这是解决多密钥分散问题的关键步骤。Claude Code 的用户级配置在~/.claude/settings.json,项目级配置在项目目录下的.claude/settings.json。我建议用用户级配置,这样所有项目都能生效。

在 WSL 的 Ubuntu 里创建配置文件:

mkdir -p ~/.claude nano ~/.claude/settings.json

写入以下内容,注意把sk-你的TaoToken密钥换成你在控制台创建的真实 Key:

{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-你的TaoToken密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-20250514", "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-20250514", "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-20250514", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-20250514", "CLAUDE_CODE_SUBAGENT_MODEL": "claude-haiku-4-20250514", "CLAUDE_CODE_EFFORT_LEVEL": "max" } }

这里的三件套是:Base URL 填https://taotoken.net/api,Key 填 TaoToken 的 API Key,Model ID 填你要用的模型。如果你要用 DeepSeek 等其他模型,把 Model ID 换成对应的即可,Base URL 和 Key 不用改,这就是统一通道的好处。

如果你更习惯用环境变量,也可以在~/.bashrc里追加:

# <<< claude code initialize <<< export ANTHROPIC_BASE_URL=https://taotoken.net/api export ANTHROPIC_AUTH_TOKEN=sk-你的TaoToken密钥 export ANTHROPIC_MODEL=claude-sonnet-4-20250514 export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-20250514 export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-20250514 export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-20250514 export CLAUDE_CODE_SUBAGENT_MODEL=claude-haiku-4-20250514 export CLAUDE_CODE_EFFORT_LEVEL=max # <<< claude code initialize <<<

然后source ~/.bashrc生效。注意 settings.json 和环境变量两种方式选一种就行,同时配可能会冲突,settings.json 优先级更高。

4. 验证请求与成功结果

配置完成后必须验证,否则你可能以为接上了实际没通。验证分三层:网络连通性、Claude Code 启动、实际对话请求。

第一层,在 WSL 终端里用 curl 测试 TaoToken 端点是否可达:

curl -s -o /dev/null -w "%{http_code}" https://taotoken.net/api

如果返回 200 或 401,说明网络通。401 是因为没带 Key,属于正常。如果返回超时或连接失败,检查 WSL 网络模式是不是 Mirrored,或者 Windows 防火墙有没有拦截。

第二层,检查环境变量是否生效:

echo $ANTHROPIC_BASE_URL echo $ANTHROPIC_AUTH_TOKEN

确认输出的是 TaoToken 的地址和你的 Key。如果为空,说明~/.bashrc没 source 或者 settings.json 路径不对。

第三层,启动 Claude Code 并发一个测试请求。在 WSL 终端里进入任意项目目录,执行:

claude

首次启动会提示你选择主题和确认配置。进入交互界面后,输入一个简单问题,比如「用 Python 写一个快速排序」。如果能看到流式返回的代码,说明整条链路通了。你也可以用非交互模式测试:

claude -p "用一句话解释什么是张量"

如果返回正常文本,说明 Base URL、Key、Model ID 三件套都配置正确。如果报错,看下一章的排查。

成功的结果是:你在 WSL 的 Ubuntu 里用 Claude Code,请求实际发到 TaoToken,由 TaoToken 转发到对应模型,返回结果。同时你在 Windows 侧的 VSCode 里通过 Remote-WSL 也能用同一个配置,因为 Claude Code 跑在 WSL 环境里,读的是 WSL 的配置文件。这样 Windows 和 WSL 两边就统一了,不需要维护两套 Key。

5. 本篇常见错误排查

这一章列出我实际踩过的坑和对应的报错,你对照着看。

报错一:401 Unauthorized 或 invalid api key

这是最常见的。原因通常是 Key 填错、Key 过期、或者 Base URL 末尾多了斜杠。检查ANTHROPIC_AUTH_TOKEN是不是完整的sk-开头字符串,ANTHROPIC_BASE_URL是不是https://taotoken.net/api且没有多余斜杠。另外注意 settings.json 里如果同时配了环境变量,可能读到了旧值,用claude config list看一下实际生效的配置。

报错二:local proxy failed 或 connection refused

这个报错说明 Claude Code 尝试连本地代理但失败了。检查你是不是之前配过HTTP_PROXY或HTTPS_PROXY环境变量指向了本地端口。用env | grep -i proxy查看,如果有就unset掉。WSL2 在 Mirrored 网络模式下不需要额外代理。

报错三:reading choices 或 unexpected response format

这个报错通常是 Base URL 指向了 OpenAI 兼容端点而不是 Anthropic 兼容端点。Claude Code 用的是 Anthropic 协议,TaoToken 的 Anthropic 兼容端点是https://taotoken.net/api,不要填成其他路径。如果你用的是 CC Switch 切换配置,检查它有没有把 Base URL 改错。

报错四:OAuth 相关报错或提示登录

Claude Code 默认会尝试 OAuth 登录 Anthropic 账号。如果你已经配了ANTHROPIC_AUTH_TOKEN,它应该跳过 OAuth。如果还提示登录,检查 settings.json 的 JSON 格式是否正确,可以用python -m json.tool ~/.claude/settings.json验证。格式错误会导致配置不生效。

报错五:WSL 里 Claude Code 插件不生效

这是 WSL 和 Windows 配置不互通导致的。CC Switch 在 Windows 侧配置的模型映射传到 WSL 时可能不完整。解决方法就是在 WSL 里单独配一份 settings.json 或环境变量,不要依赖 Windows 侧的 CC Switch 同步。三件套 Base URL、Key、Model ID 在 WSL 里重新填一遍。

报错六:nvidia-smi 在 WSL 里找不到命令

说明 Windows 侧的 NVIDIA 驱动没装好,或者 WSL 没启用 GPU 直通。先在 Windows 里确认nvidia-smi能正常输出,然后确认 WSL 内核版本支持 GPU。Windows11 的 WSL2 默认支持,如果不行执行wsl --update更新内核。

报错七:conda activate 报错 command not found

Miniconda 安装后没初始化 shell。执行source ~/.bashrc,或者conda init bash后重开终端。如果还不行,检查~/.bashrc里有没有 conda 的初始化块。

6. 长期编码与 Agent 任务的接入建议

把环境跑通只是第一步,真正高频使用后你会关心稳定性和额度。如果你主要用 Claude Code 做日常编码、代码审查、Agent 任务,建议走 Coding Plan,地址是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,它针对长时间编码场景做了优化,比按量计费更划算。

接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,里面有各工具的完整配置示例。如果你要管理多个 Key 或者查看用量,去控制台 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。API Keys 管理在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。想先测试模型效果,用模型对话页面 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。Claude Code 专用接入说明在 https://taotoken.net/ClaudeCodeAnthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。

最后说一个实用技巧:把~/.claude/settings.json纳入你的 dotfiles 管理,换机器时直接同步,不用重新配。WSL 的发行版可以用wsl --export导出成 tar 文件备份,环境搞坏了直接导入恢复,比重新装一遍快得多。深度学习环境最怕的就是配好了不敢动,有了备份就可以放心折腾。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询