-1

在我的 Conda 环境中,当我运行时pip show MetPy,我的第一行和最后两行是:

Name: MetPy
Version: 1.0
...
Requires: scipy, matplotlib, pandas, pyproj, pooch, importlib-resources, traitlets, importlib-metadata, numpy, pint, xarray
Required-by: 

当我运行时pip show pint,我的第一行和最后两行是:

Name: Pint
Version: 0.16.1
...
Requires: packaging, importlib-metadata
Required-by: MetPy

这些应该是这些软件包的最新版本。然而,当我尝试做...

import metpy.calc as mpcalc

...我收到以下错误:

Traceback (most recent call last):
  File "redacted.py", line 17, in <module>
    import metpy.calc as mpcalc
  File "~/anaconda3/envs/environment/lib/python3.7/site-packages/metpy/calc/__init__.py", line 7, in <module>
    from .cross_sections import *  # noqa: F403
  File "~/anaconda3/envs/environment/lib/python3.7/site-packages/metpy/calc/cross_sections.py", line 14, in <module>
    from .tools import first_derivative
  File "~/anaconda3/envs/environment/lib/python3.7/site-packages/metpy/calc/tools.py", line 106, in <module>
    def find_intersections(x, a, b, direction='all', log_x=False):
  File "~/anaconda3/envs/environment/lib/python3.7/site-packages/pint/registry_helpers.py", line 248, in decorator
    % (func.__name__, count_params, len(args))
TypeError: find_intersections takes 5 parameters, but 3 units were passed

这让我觉得我的包更新遗漏了一些东西。我还缺少另一个依赖项吗?

4

1 回答 1

2

看起来您可能没有pip在您的 conda 环境中安装,或者您是pip从 conda 环境之外的某个地方运行的,因此pip show可能会误导您。使用 来检查 conda 环境中的 MetPy 和 Pint 版本conda list,因为这应该是旧版本的 MetPy (<=0.11.1) 和新版本的 Pint (>0.9) 之间的版本冲突错误。

conda install -c conda-forge metpy==1.0应该让您的 conda 环境赶上 MetPy 1.0。

于 2021-01-28T23:01:08.973 回答