从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
相关产品推荐
相关产品推荐

