写在最前这是「Python for Hydrology」系列的第 1 篇。 我决定从最该被讲清楚、却被无数教程一笔带过的地方开始——**Python环境配置**。
一段你可能也经历过的开场
刚学 Python 的时候,我和大多数水文专业的同学一样,搜到的第一条建议都是:
"新手就装 Anaconda,一键搞定!"
于是我下载了 3 GB 的安装包,装了半小时,C 盘瘦了4 GB,开机时还多了个叫 Anaconda Navigator 的弹窗——慢得能让我背完一段《水文学原理》。
后来要装 xarray,conda 卡了 20 分钟在 "Solving environment"。要装 rasterio,又因为依赖冲突卡了 40 分钟。我那天在实验室对着屏幕发呆,突然意识到——
我装的根本不是 Python,是个臃肿的发行版。
直到一位师兄发我一句话:
装 Miniconda,别装 Anaconda。
那天之后,我的环境再没卡过。
一、Anaconda 和 Miniconda,到底差在哪?
很多人以为 Miniconda 是"功能阉割版",这是最大的误解。
它们的 conda 包管理器完全一样,能装的库完全一样,能做的事完全一样。唯一的区别是——

简单说:
Anaconda 帮你预装了 250+ 个库,包括你几乎用不到的 R 语言工具、统计软件、机器学习套件 Miniconda 只装 Python + conda 本体,你需要什么就装什么
对水文工作者来说,这个差异决定了三件事 👇
二、为什么水文人尤其该选 Miniconda
① 我们的工具栈高度专业化
水文分析常用的 xarray / rasterio / geopandas / pysheds,Anaconda 一个都没预装。你装了 Anaconda,还是要从头 conda install——那当初装那 250 个用不到的库图什么?
② 多项目隔离是刚需
一个流域用 Python 3.11,另一个项目要兼容老脚本用 Python 3.9。一个用 geopandas 1.0,另一个用 0.14。没有干净的环境管理,迟早翻车。 Miniconda 让你养成"每个项目一个独立环境"的好习惯。
③ 服务器上必须用 Miniconda
跑模型、做并行计算的时候,你早晚要登服务器。服务器没图形界面,Navigator 是摆设;磁盘金贵,3 GB 的 Anaconda 是负担。先在本地用 Miniconda 习惯命令行,上服务器才不慌。
三、30 分钟搞定 Miniconda

Step 1 · 下载(用清华镜像,飞快)
直接从清华镜像下,不要去官网,国内官网下载慢得让人想砸键盘。
打开 → https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
找最新的,按你的系统挑:
Miniconda3-latest-Windows-x86_64.exe | |
Miniconda3-latest-MacOSX-x86_64.pkg | |
Miniconda3-latest-MacOSX-arm64.pkg | |
Miniconda3-latest-Linux-x86_64.sh |
💡 小贴士不确定 Mac 是 Intel 还是 Apple Silicon?点左上角苹果图标 → "关于本机","芯片"那一栏写
Apple M1/M2/M3就选arm64。
Step 2 · 安装
Windows 用户:双击 .exe,一路 Next。有一步关键——勾选这个:
☑ Add Miniconda3 to my PATH environment variable
虽然界面会用红字警告"不推荐",但请勾上它。不然你在 PowerShell 里输 conda 系统会假装不认识。
macOS 用户:双击 .pkg,按提示走完,自动配好。
Linux 用户:
bash Miniconda3-latest-Linux-x86_64.sh# 按几次空格翻完协议,输 yes 接受# 默认安装路径直接回车# 最后问 "Do you wish to update your shell profile..." 选 yes装完关掉所有终端窗口,重新打开一个。
Step 3 · 验证(看到这个就成功了)
打开终端(Windows 用 PowerShell,Mac/Linux 用 Terminal),输入 conda --version,应该看到:

如果你看到 conda: command not found,多半是 Windows 安装时忘了勾 PATH。别慌,去"控制面板 → 系统 → 高级系统设置 → 环境变量",把 Miniconda3 和 Miniconda3\Scripts 两个路径加进 PATH 就行。
Step 4 · 创建你的第一个水文环境
接下来这步很重要——从今天起,养成绝不在 base 环境里装东西的习惯。
# 创建一个干净的水文专属环境conda create -n hydro python=3.11 -y# 进入环境conda activate hydro成功的标志是命令行最前面多了 (hydro) 前缀:
(hydro) $ █恭喜,你拥有了一片只属于水文项目的纯净空间。
四、给水文环境装上"第一套装备"
激活 hydro 环境后,一行命令装齐基础工具:
conda install -c conda-forge \ numpy pandas matplotlib \ xarray netcdf4 \ jupyter -y🌊 为什么用
conda-forge渠道?它是社区维护的、最全也最新的科学计算包仓库。xarray、rasterio、geopandas这些库在默认渠道经常版本滞后或干脆装不上。记住这条规则:科学计算包,优先 conda-forge。
装完检查一下:
conda list | head五、conda 命令速查卡(建议截图保存)
下面这张是我自己用得最频繁的 14 条命令。把它存到手机相册,比任何长教程都管用:

特别提醒三条最容易忘的:
# 导出环境(论文复现 / 换电脑必备)conda env export > environment.yml# 在新机器上一键还原conda env create -f environment.yml# 想删一个环境?先退出当前环境,再删conda deactivateconda remove -n hydro --all六、第一个水文成果:5 行代码画出过程线
最后用一段真实可跑的代码犒劳自己——这也是你为什么折腾这套环境的原因。
import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# 1) 造一段汛期日数据:121 天的降雨与流量rng = np.random.default_rng(42)dates = pd.date_range("2023-06-01", "2023-09-30", freq="D")rain = np.where(rng.random(len(dates)) < 0.1, rng.exponential(15, len(dates)), 0)# 2) 用卷积模拟流域响应kernel = np.array([0, .2, .5, .7, .5, .3, .15, .08, .04, .02])flow = 8 + np.convolve(rain, kernel, mode="same") * 1.8# 3) 优雅地画图:流量 + 倒挂降雨df = pd.DataFrame({"P": rain, "Q": flow}, index=dates)ax = df["Q"].plot(figsize=(10, 4), color="#2E86AB", lw=1.8)ax.twinx().bar(df.index, df["P"], color="#13315C", alpha=.8)plt.gca().invert_yaxis()plt.show()跑完你会得到这张图 👇

这就是水文 Python 的魅力——不到 10 行代码,一个完整的降雨—径流过程图就出来了。后面我们会换上真实的 USGS / CAMELS 数据集,画得更专业。
七、写在最后
环境管理听起来枯燥,但它是后面所有内容的地基。
回到最初那个问题——为什么我劝你卸载 Anaconda?因为它替你做了太多决定,而水文工作者最需要的能力是:自己决定每个项目装什么、用什么版本、何时升级。
Miniconda 不是更少,而是更对。
📌 行动清单① 装好 Miniconda ② 创建
hydro环境 ③ 装上 numpy / pandas / matplotlib / xarray ④ 跑通最后那段 5 行代码
如果四步都打了勾,你已经领先 80% 的同行。
📮 下期预告
EP.02 · VS Code 打造水文分析 IDE — 必装插件 + 我用了 3 年的 settings.json
为什么不用 PyCharm?为什么不用 Spyder?为什么不直接用 Jupyter?答案在下一篇。
关于本号Python for Hydrology — 一个写给水文人的 Python 公众号。 计划 9 大类、59 篇文章,从环境配置一路写到深度学习径流预报。 如果对你有帮助,点赞 + 在看 + 转发就是最大的支持 💧
互动你装的是 Anaconda 还是 Miniconda?环境管理遇到过什么坑? 欢迎在评论区聊聊 👇
夜雨聆风