第二章 环境准备:把工具箱搭起来

说实话,我见过太多同学卡在环境搭建这一步了。

不是报错就是版本冲突,折腾半天连个 Hello World 都跑不出来。我自己早年刚学编程那会儿,也踩过不少坑——记得有一次配 Node.js 环境,因为路径里有中文,折腾了整整两天才反应过来。嗯,所以这章我带你一次性搞定,后面就能专心写 SDK 接入代码了。

2.1 开发工具选型:别纠结,选主流的

工具这东西,其实没有“最好”的版本。你想想看,大多数人用什么,你就用什么,遇到问题网上搜一下就有答案。

我个人习惯用这三类编辑器/IDE:

  • VS Code —— 轻量、插件多,Python/Go/Node.js 都合适。我个人目前的主力工具。
  • JetBrains 全家桶 —— 写 Java 用 IntelliJ IDEA,写 Go 用 GoLand,写 Python 用 PyCharm。公司项目我建议用这个,调试起来方便。
  • Vim / Neovim —— 如果你终端重度用户,熟悉以后效率很高。但不推荐新手一上来就用。

一条实用建议:不要同时装三个编辑器。挑一个趁手的,把它用透。我见过太多人每天换工具,结果一个都没学精。

2.2 桌面环境检查:先确认你手头有啥

不同操作系统,踩坑点不太一样。先看看你电脑的情况:

操作系统 推荐包管理器 终端工具 注意事项
Windows 10/11 winget / Chocolatey PowerShell 7 / Windows Terminal 路径中不能有中文,文件名避免空格
macOS Homebrew iTerm2 或系统终端 先装 Xcode Command Line Tools
Linux (Ubuntu/Debian) apt 系统自带终端 确认 gcc / build-essential 已安装

我建议你第一步:打开终端,跑一下 whoami,看到自己的用户名,说明终端是好的。很多新人卡在第一步,原因竟然是“找不到终端在哪”——Windows 按 Win+R 输入 pwsh,macOS 按 Cmd+Space 搜“终端”。

2.3 语言运行时环境:四种语言一次配齐

这门课要用四种语言演示 SDK 接入。别怕,我们不是一次性全装,而是按需装。你只需要挑你当前要用的语言来配就行。

2.3.1 Python 环境

Python 有个老大难问题:版本管理。我建议直接用 pyenv,不要手动下安装包。

# macOS / Linux
curl https://pyenv.run | bash
pyenv install 3.11.6
pyenv global 3.11.6

# Windows 直接用官方安装包
# 下载地址:python.org  → 下载 3.11.x 版本
# 安装时一定要勾选 "Add Python to PATH"

装完验证一下:

python --version
# 输出:Python 3.11.6
pip --version
# 输出:pip 23.2.1

我曾经踩过这个坑:系统自带的 Python 2.x 和新装的 Python 3.x 冲突。解决办法:装完 pyenv 后,确认 python 命令指向的是你刚装的版本,不要用 python3 来糊弄——后面写脚本会很混乱。

2.3.2 Java 环境

SDK 接入里 Java 一般用 17 或者 21。我个人推荐用 SDKMAN 来管理版本,切换非常方便。

# 安装 SDKMAN
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

# 安装 Java 17
sdk install java 17.0.9-tem
sdk default java 17.0.9-tem

不习惯命令行的同学,直接去 oracle.com/java 下载安装包也行。装完记得配环境变量:

# Windows 系统变量
JAVA_HOME = C:\Program Files\Java\jdk-17
PATH 追加 %JAVA_HOME%\bin

# 验证
java -version
# 输出:openjdk version "17.0.9" 2024-01-16

2.3.3 Go 环境

Go 的安装最省心。官方提供了各平台的安装包,点几下就能装好。

# macOS
brew install go

# Windows 下载 msi 安装包
# 安装后默认路径:C:\Go

# Linux
wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin

验证:

go version
# 输出:go version go1.21.5 darwin/amd64

一个小细节:Go 的 GOPATH 默认在家目录下的 go 文件夹。我习惯把项目代码放在 ~/go/src/ 下,这样 go install 出来的二进制也能直接跑。

2.3.4 Node.js 环境

Node.js 版本管理我用 nvm,也是习惯问题。每个项目跑不同 Node 版本,nvm 切起来很方便。

# macOS / Linux 装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# 重启终端后
nvm install 20.10.0
nvm alias default 20.10.0

# Windows 用 nvm-windows
# 从 github.com/coreybutler/nvm-windows 下载安装包

验证:

node -v
# 输出:v20.10.0
npm -v
# 输出:10.2.3

2.4 编辑器与插件:给 VS Code 装上“助推器”

我用 VS Code 好几年了,下面这几个插件几乎是每台机器必装的:

  • Python —— 微软官方,提供 linting、debug、Jupyter 支持
  • Java Extension Pack —— 包含 Language Support、Debugger、Maven 支持
  • Go —— 由 Go 团队维护,代码补全、格式化一条龙
  • ESLint —— JavaScript/TypeScript 代码检查,接入 SDK 时能帮你发现低级错误
  • GitLens —— 看代码归属和提交历史,前端后端都离不开
  • Prettier —— 代码格式化,团队协作标配

装完这些,你的编辑器基本就武装到牙齿了。我一般不推荐装太多插件——多了反而拖慢启动速度。

2.5 版本管理工具:Git 的安装与配置

SDK 开发过程中,你免不了要拉取仓库、切换分支、回滚代码。Git 是基本功。

# Windows / macOS / Linux 都推荐官方包
# 下载地址:git-scm.com

# 安装后配置用户名和邮箱
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

# 推荐设置默认分支名为 main
git config --global init.defaultBranch main

验证:

git --version
# 输出:git version 2.42.0

这里提醒一句:如果你之前用过其他版本管理工具,比如 SVN,记得不要混淆两个工具的命令。我在项目中见过同事在 Git 仓库里执行 svn commit —— 嗯,结果当然是报错了。

2.6 一张图理清环境准备的完整流程

下面这张图展示了从零开始,到能跑起一个 SDK Demo 的环境搭建全流程。我用它来检查自己有没有遗漏步骤。

多语言SDK环境准备流程图 SDK环境准备 · 三步走 确认操作系统 安装编辑器 + 包管理器 + Git 选择并安装语言运行时 Python 3.11 Java 17 Go 1.21 Node.js 20 创建项目 & 运行 Demo 可以接 SDK 了 ✓ 选一个语言即可 不用四种都装

说白了,环境准备就这三步:先确认你的系统,再装好工具链,最后配好语言运行时。不要贪多,选一个语言配通,后续章节的代码示例你直接用那个环境跑就行。

2.7 常见问题与解决思路

快速过几个我实际遇到过的高频报错:

症状 根因 解法
command not found: python Python 没加到 PATH 重新安装,勾选“Add to PATH”,重启终端
Error: JAVA_HOME is not set 环境变量没配 手动设置 JAVA_HOME 指向 JDK 安装路径
go: command not found Go 安装路径没在 PATH 检查 /usr/local/go/bin 是否在 PATH 里
nvm: command not found 终端没加载 nvm 配置 重启终端 或 执行 source ~/.bashrc

如果你遇到上面没列出的问题,记住一个原则:不要在一棵树上吊死。换一个管理工具试试,比如 Python 从手动安装换成 pyenv,Java 从 Oracle JDK 换成 Adoptium/Temurin,很多时候问题就消失了。