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

从metpy.plots导入SkewT时触发NameError:ctables未定义

解决MetPy导入SkewT时的NameError问题

尝试从metpy.plots导入SkewT时触发NameError,提示name 'ctables' is not defined。用户提到2020年曾出现类似问题,原本以为当前MetPy版本已修复,实际仍遇到该报错。

用户代码:

from datetime import datetime

import matplotlib.pyplot as plt
from metpy.plots import SkewT
from metpy.units import pandas_dataframe_to_unit_arrays, units
import numpy as np
from siphon.simplewebservice.wyoming import WyomingUpperAir

错误信息:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[28], line 4
      1 from datetime import datetime
      3 import matplotlib.pyplot as plt
----> 4 from metpy.plots import SkewT
      5 from metpy.units import pandas_dataframe_to_unit_arrays, units
      6 import numpy as np

File /Applications/anaconda3/envs/geodata/lib/python3.11/site-packages/metpy/plots/__init__.py:19
     16 from .wx_symbols import *  # noqa: F403
     17 from ..package_tools import set_module
---> 19 __all__ = ctables.__all__[:]  # pylint: disable=undefined-variable
     20 __all__.extend(declarative.__all__)  # pylint: disable=undefined-variable
     21 __all__.extend(patheffects.__all__)  # pylint: disable=undefined-variable

NameError: name 'ctables' is not defined

解决方案:

这个报错本质是MetPy安装损坏或版本兼容问题,执行以下步骤修复:

  • 彻底卸载当前MetPy:
    # pip环境
    pip uninstall -y metpy
    
    # conda环境
    conda uninstall metpy
    
  • (可选)手动删除MetPy的残留安装目录,比如用户环境中的路径:/Applications/anaconda3/envs/geodata/lib/python3.11/site-packages/metpy
  • 重新安装稳定版MetPy:
    # pip安装最新稳定版
    pip install metpy
    
    # conda安装(推荐用conda-forge源)
    conda install -c conda-forge metpy
    

如果最新版本仍有问题,可以尝试安装已知无此bug的版本,比如:

pip install metpy==1.5.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:16:08