2

长期程序员,但对 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

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

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

在此先感谢您的帮助/见解!

4

1 回答 1

2

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

于 2020-05-20T21:03:59.453 回答