1. 为什么需要虚拟环境?

如果你在Windows上尝试安装PYGMT,大概率会遇到各种依赖冲突问题。我见过太多人因为系统里同时存在多个Python版本或不同科学计算包,导致PYGMT安装失败或者运行时崩溃。想象一下,你花了两天时间调试环境,结果画出来的地图全是乱码——这种崩溃感我太熟悉了。

虚拟环境就像给你的Python项目准备了一个独立房间。在这个房间里,所有家具(依赖包)的摆放都由你完全控制,不会和客厅(系统环境)里的其他家具打架。特别是对于PYGMT这种依赖GMT、Ghostscript等底层C库的工具,隔离环境几乎是必须的。我去年帮一个地质研究所配置环境时,他们原有系统里装着五个不同版本的NumPy,导致PYGMT根本读不到正确的GMT路径。

2. 准备工作:安装与配置Conda

2.1 选择适合的Anaconda版本

首先去Anaconda官网下载最新版,注意要选64位安装包(现在谁还用32位系统啊)。安装时有三个关键选项:

  • 安装路径建议用默认的C:\Users\<你的用户名>\anaconda3
  • 一定要勾选"Add Anaconda to PATH"(虽然官方不推荐,但实测在Windows上更方便)
  • 注册为默认Python选项可以跳过

安装完成后,打开开始菜单里的"Anaconda Prompt",输入conda --version测试是否成功。如果报错,可能需要手动添加环境变量:把C:\Users\<你的用户名>\anaconda3\ScriptsC:\Users\<你的用户名>\anaconda3加入系统PATH。

2.2 配置国内镜像加速

默认源下载速度慢得像蜗牛,我们需要修改.condarc文件。这个文件通常在你的用户目录下(比如C:\Users\tjx33),没有就新建一个。用记事本打开,粘贴以下内容:

channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

保存后,在Anaconda Prompt里运行conda clean -i清除缓存。现在下载速度应该能提升10倍不止——我上周给团队配置时,原本要2小时的安装现在15分钟搞定。

3. 创建专属PYGMT环境

3.1 新建虚拟环境

在Anaconda Prompt执行以下命令(建议复制粘贴,手打容易出错):

conda create -n pygmt python=3.9

这里有几个经验之谈:

  • 环境名用pygmt方便记忆,当然你可以改成自己喜欢的
  • Python版本建议3.8或3.9,PYGMT对3.10+的支持还不完善
  • 如果提示某些包冲突,可以加--no-deps参数跳过依赖检查

创建完成后,用conda activate pygmt激活环境。看到命令行前面出现(pygmt)就说明成功了。这时候再输入python --version,应该显示你指定的版本。

3.2 安装核心依赖包

先升级pip到最新版(旧版经常出问题):

python -m pip install --upgrade pip

然后一次性安装所有依赖(注意顺序很重要):

pip install numpy pandas xarray netcdf4 packaging

这里有个坑我踩过三次:必须先用pip安装这些基础包,如果直接用conda安装会导致后续PYGMT报错。等这些包装完,再安装PYGMT本体:

pip install pygmt

整个过程大概需要5-10分钟,取决于你的网速。如果卡在某个包不动,可以按Ctrl+C中断后重试。

4. 验证安装与问题排查

4.1 基础功能测试

新建一个test.py文件,写入以下代码:

import pygmt
fig = pygmt.Figure()
fig.coast(region=[115, 125, 20, 30], projection="M10c", land="gray", water="lightblue")
fig.savefig("test.png")

运行后如果当前目录生成了一张中国东南沿海的地图,恭喜你成功了!如果报错,大概率是以下两种情况:

4.2 常见错误解决方案

错误1:GMT库路径问题

GMTCLibNotFoundError: Error loading GMT shared library

这说明系统找不到GMT的dll文件。解决方法:

  1. 检查是否安装了GMT(PYGMT不自带GMT)
  2. 把GMT的bin目录(比如C:\programs\gmt6\bin)添加到系统PATH
  3. 重启命令行再试

错误2:Ghostscript冲突

RuntimeError: Failed to determine Ghostscript version

这是因为系统里有多个Ghostscript版本。打开控制面板->卸载程序,保留最新版即可。我建议用conda统一管理:

conda install ghostscript -c conda-forge

5. 开发环境配置技巧

5.1 PyCharm关联虚拟环境

  1. 打开PyCharm -> File -> Settings -> Python Interpreter
  2. 点击齿轮图标 -> Add -> Existing environment
  3. 找到你的conda环境路径,通常是: C:\Users\<用户名>\anaconda3\envs\pygmt\python.exe
  4. 点击OK后,PyCharm会自动识别所有已安装包

5.2 Jupyter Notebook使用技巧

在虚拟环境中安装jupyter:

pip install jupyter

启动时用这个命令可以自动关联内核:

python -m ipykernel install --user --name pygmt --display-name "PYGMT"

之后在Notebook里就能直接选择PYGMT环境了。这个小技巧帮我省去了每次手动切换的麻烦。

6. 环境维护与备份

6.1 导出环境配置

定期执行这个命令备份环境:

conda env export > pygmt_env.yaml

重装系统时,用下面命令一键恢复:

conda env create -f pygmt_env.yaml

6.2 空间清理

Conda环境会占用不少空间,建议定期清理缓存:

conda clean --all

如果不再需要某个环境:

conda remove --name pygmt --all

记得在执行前确认没有重要项目在使用这个环境。去年我不小心删错了环境,导致一周的工作白费——现在我都习惯先用conda list --explicit > requirements.txt做双重备份。

更多推荐