Python MetPy与Pint软件包兼容性错误
在我的Conda环境中,当我运行Python MetPy与Pint软件包兼容性错误,python,pip,anaconda,metpy,pint,Python,Pip,Anaconda,Metpy,Pint,在我的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: Name: Pint Version: 0.16.1 ... Requir
pip show MetPy
时,我的第一行和最后两行是:
Name: MetPy
Version: 1.0
...
Requires: scipy, matplotlib, pandas, pyproj, pooch, importlib-resources, traitlets, importlib-metadata, numpy, pint, xarray
Required-by:
Name: Pint
Version: 0.16.1
...
Requires: packaging, importlib-metadata
Required-by: MetPy
当我运行pip show pint
时,我的第一行和最后两行是:
Name: MetPy
Version: 1.0
...
Requires: scipy, matplotlib, pandas, pyproj, pooch, importlib-resources, traitlets, importlib-metadata, numpy, pint, xarray
Required-by:
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
回溯(最近一次呼叫最后一次):
文件“redacted.py”,第17行,在
将metpy.calc导入为mpcalc
文件“~/anaconda3/envs/envs/environment/lib/python3.7/site packages/metpy/calc/_init__.py”,第7行,在
from.cross_sections import*#noqa:F403
文件“~/anaconda3/envs/environment/lib/python3.7/site packages/metpy/calc/cross_sections.py”,第14行,在
从。工具导入一阶导数
文件“~/anaconda3/envs/environment/lib/python3.7/site packages/metpy/calc/tools.py”,第106行,在
def find_交叉点(x、a、b、方向='all',log_x=False):
文件“~/anaconda3/envs/envs/environment/lib/python3.7/site packages/pint/registry\u helpers.py”,第248行,在decorator中
%(函数名、计数参数、len(args))
TypeError:find_交点采用5个参数,但传递了3个单位
这让我觉得我的软件包更新遗漏了一些东西。我缺少另一个依赖项吗?看来您可能没有在您的conda环境中安装
pip
,或者您正在conda环境之外的某个地方运行pip
,因此pip show
可能会误导您。使用conda list
,在您的conda环境中检查您的MetPy和Pint版本,因为这应该是MetPy(0.9)的旧版本之间的版本冲突错误
conda安装-c conda forge metpy==1.0
应使您的conda环境赶上metpy 1.0。请将anaconda问题标记为,将pip问题标记为。此问题可能与特定软件包无关,因此问题标题具有误导性。如果这些软件包是与conda not pip一起安装的,则应使用conda show
notpip show…
。很可能安装的软件包版本有冲突,一个在conda下,一个在pip下。(最明显的检查方法是卸载与pip一起安装的)。我认为你是对的。我一直在通过pip进行安装,我相信这会把一切搞乱。完全通过conda forge从零开始安装新环境似乎解决了问题。很抱歉没有使用这些标签。我和梅蒂家的人有关系,所以我把这件事告诉了他们。新手海报移动。当我弄清楚如何关闭时,这可以关闭。