如何解决Python中MetPy的'module 'metpy' has no attribute 'calc''错误?
解决MetPy AttributeError: module 'metpy' has no attribute 'calc'问题
你遇到的错误是因为MetPy 1.5.0版本中,calc是独立的子模块,无法直接通过metpy.calc访问,除非显式导入该子模块。
修改方案(二选一即可)
- 方案一:导入
metpy.calc子模块并使用别名
调整代码的导入部分:
import metpy as mp import metpy.calc as mpcalc import numpy as np import pandas as pd # 补充缺失的pandas导入 from metpy.units import units df = pd.read_csv('wind.csv', header=0) u = (df['u10'].to_numpy()) * units("m/s") v = (df['v10'].to_numpy()) * units("m/s") df['speed'] = mpcalc.wind_speed(u, v)
- 方案二:直接导入
wind_speed函数
如果只需要wind_speed这一个函数,可以直接导入:
import metpy as mp import numpy as np import pandas as pd # 补充缺失的pandas导入 from metpy.units import units from metpy.calc import wind_speed df = pd.read_csv('wind.csv', header=0) u = (df['u10'].to_numpy()) * units("m/s") v = (df['v10'].to_numpy()) * units("m/s") df['speed'] = wind_speed(u, v)
另外,你的代码中缺少pandas的导入语句,运行时会触发NameError: name 'pd' is not defined,上面的修改方案已经补充了这部分。
内容的提问来源于stack exchange,提问作者tok
相关产品推荐
相关产品推荐

