从 metpy.plots 导入时未定义 cTables?

cTables Undefined when importing from metpy.plots?

资深程序员,但 python 和 metpy 新手。我正在尝试按照 unidata 网站和 youtube 上的示例进行学习 (metpy mondays)

我正在尝试构建一个简单的 skew-t 课程并 运行 解决一个问题。当我尝试像这样使用导入时:

from datetime import datetime
from siphon.simplewebservice.wyoming import WyomingUpperAir
from metpy.units import units
import matplotlib.pyplot as plt
import metpy.plots as plots

%matplotlib inline

我收到这个错误:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-4-afb9be7497de> in <module>
      3 from metpy.units import units
      4 import matplotlib.pyplot as plt
----> 5 import metpy.plots as plots
      6 
      7 get_ipython().run_line_magic('matplotlib', 'inline')

C:\Miniconda_Python\envs\unidata\lib\site-packages\metpy\plots\__init__.py in <module>
     17 logger = logging.getLogger(__name__)
     18 
---> 19 __all__ = ctables.__all__[:]  # pylint: disable=undefined-variable
     20 __all__.extend(declarative.__all__)  # pylint: disable=undefined-variable
     21 __all__.extend(skewt.__all__)  # pylint: disable=undefined-variable

NameError: name 'ctables' is not defined

我之前对这个导入没有任何问题,所以想知道这里发生了什么?我环境中的包之间是否存在一些不一致,或者我是否遗漏了什么?我已尝试更新所有内容以确保我没有使用任何旧内容。

作为参考,我使用的是带有 python 3.7.7 和 metpy 0.12.1 的 conda 版本 4.8.3。如果我需要提供任何其他可能有用的信息,请告诉我。

提前感谢任何help/insight!

所以这个问题是由 CartoPy 0.18 引起的。我们正在努力发布 0.12.2 版本的 MetPy 来解决这个问题。目前最好的解决方法是将 CartoPy 回滚到 0.17。