You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Conda环境下Spyder使用PyGMT出现版本与依赖报错求助

解决步骤

两个问题分别是Conda频道优先级错误导致的依赖版本不匹配、跨环境调用程序导致的版本不对,按以下步骤操作即可:

1. 先修复PyGMT加载报错(GLIBCXX/libgmt找不到问题)

你看到的GLIBCXX_3.4.30 not found报错,本质是创建环境时混用了不同频道的安装包,且环境优先调用了系统自带的旧版libstdc++库,没有使用conda环境内打包的新版依赖:

  • 终端执行命令激活pygmt环境:
    conda activate pygmt
    
  • 给当前环境强制设置conda-forge频道为最高优先级,避免依赖混装:
    conda config --env --add channels conda-forge
    conda config --env --set channel_priority strict
    
  • 重装/更新匹配版本的依赖包,补全缺失的库文件:
    conda install -c conda-forge libstdcxx-ng gdal pygmt --update-all
    
  • 先在终端验证PyGMT是否能正常加载,不出现报错即为修复成功:
    python -c "import pygmt; print(pygmt.show_versions())"
    

如果这一步还是提示libstdc++版本不对,执行下面的命令把conda环境的库路径加到加载优先级最前面,可以把这行写到~/.bashrc里永久生效:

export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH

2. 修复Spyder版本为5的问题

你现在打开的Spyder3是系统/base环境里的旧版本,没有关联到pygmt环境,两种方案选一个即可:

方案1(最省事,不改动原有spyder-env配置)

直接在pygmt环境内安装Spyder5:

  • 保持pygmt环境激活状态,执行:
    conda install -c conda-forge spyder=5
    
  • 后续使用时必须先激活pygmt环境,再在终端输入spyder启动,不要点系统桌面的快捷方式,否则会打开其他环境的旧版Spyder。

方案2(复用原有spyder-env里的Spyder5)

不用额外装Spyder,给pygmt环境注册内核到现有Spyder即可:

  • 激活pygmt环境,安装ipykernel并注册到系统:
    conda install ipykernel
    python -m ipykernel install --user --name=pygmt
    
  • 切回spyder-env环境,启动你原来用的Spyder5,点击界面右下角的Python解释器选项,选择路径为/home/vialb/miniconda3/envs/pygmt/bin/python的解释器,重启内核后就能正常调用pygmt环境的所有库。

补充:最开始spyder-env里找不到libgmt.so的问题

这个报错也是因为没有设置conda-forge的严格频道优先级,导致安装pygmt时没装全GMT的二进制依赖。如果你不想单独维护pygmt环境,直接回到spyder-env里按前面的步骤设置频道优先级,再执行conda install -c conda-forge pygmt就能正常安装使用,不会出现找不到libgmt.so的问题。

内容的提问来源于stack exchange,提问作者BenjiBoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 14:45:41