ModuleNotFoundError: No module named 'xarray.core.accessors'

ModuleNotFoundError: No module named 'xarray.core.accessors'

我是 python 的新手,正在尝试 运行 使用 xarray 的 Metpy 教程,之前没问题,但在我将 xarray 更新到较新版本后,它显示错误

我尝试在 anaconda 提示符下创建另一个环境,并安装包括 metpy 在内的每个模块(xarray 已经包含在内)

import metpy
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-4fe739b01247> in <module>
----> 1 import metpy

C:\ProgramData\Anaconda3\envs\cobaxarray\lib\site-packages\metpy\__init__.py in <module>
     13 
     14 from ._version import get_versions  # noqa: E402
---> 15 from .xarray import *  # noqa: F401, F403
     16 __version__ = get_versions()['version']
     17 del get_versions

C:\ProgramData\Anaconda3\envs\cobaxarray\lib\site-packages\metpy\xarray.py in <module>
     11 
     12 import xarray as xr
---> 13 from xarray.core.accessors import DatetimeAccessor
     14 from xarray.core.indexing import expanded_indexer
     15 from xarray.core.utils import either_dict_or_kwargs, is_dict_like

ModuleNotFoundError: No module named 'xarray.core.accessors'
This is the xarray installed versions outside my environment
INSTALLED VERSIONS
------------------
commit: None
python: 3.7.3 | packaged by conda-forge | (default, Mar 27 2019, 23:18:50) [MSC v.1900 64 bit (AMD64)]
python-bits: 64
OS: Windows
OS-release: 8.1
machine: AMD64
processor: Intel64 Family 6 Model 69 Stepping 1, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None
libhdf5: 1.10.4
libnetcdf: 4.6.2

xarray: 0.12.2
pandas: 0.24.2
numpy: 1.16.3
scipy: 1.2.1
netCDF4: 1.5.1.2
pydap: None
h5netcdf: None
h5py: 2.9.0
Nio: None
zarr: None
cftime: 1.0.3.4
nc_time_axis: 1.1.0
PseudonetCDF: None
rasterio: None
cfgrib: None
iris: None
bottleneck: 1.2.1
dask: 1.2.2
distributed: 1.28.1
matplotlib: 3.1.0
cartopy: 0.17.0
seaborn: 0.9.0
numbagg: None
setuptools: 41.0.1
pip: 19.1.1
conda: 4.7.5
pytest: 4.5.0
IPython: 7.5.0
sphinx: 2.0.1
This is the installed version of xarray inside my environment
INSTALLED VERSIONS
------------------
commit: None
python: 3.7.3 | packaged by conda-forge | (default, Jul  1 2019, 22:01:29) [MSC v.1900 64 bit (AMD64)]
python-bits: 64
OS: Windows
OS-release: 8.1
machine: AMD64
processor: Intel64 Family 6 Model 69 Stepping 1, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None
libhdf5: None
libnetcdf: None

xarray: 0.12.2
pandas: 0.24.2
numpy: 1.16.4
scipy: 1.2.1
netCDF4: None
pydap: None
h5netcdf: None
h5py: None
Nio: None
zarr: None
cftime: None
nc_time_axis: None
PseudonetCDF: None
rasterio: None
cfgrib: None
iris: None
bottleneck: None
dask: None
distributed: None
matplotlib: 3.1.1
cartopy: 0.17.0
seaborn: None
numbagg: None
setuptools: 41.0.1
pip: 19.1.1
conda: None
pytest: None
IPython: 7.6.1
sphinx: None

我想从 metpy 教程中获得准确的结果,但是在导入 metpy 模块时找不到模块会导致教程失败,感谢您的帮助

转到C:\ProgramData\Anaconda3\envs\cobaxarray\lib\site-packages\metpy\xarray.py

找到行from xarray.core.accessors import DatetimeAccessor

改为from xarray.core.accessor_dt import DatetimeAccessor

此问题是由于 Xarray 更新到 0.12.2。昨天刚刚发布了新版本的 MetPy,因此这些问题已得到解决。如果您只是升级 MetPy,一切都应该再次运行:pip install --upgrade metpy

我不得不在我的 .bashrc 文件中取消引用 anaconda3,然后重新安装 anaconda3 的 2020 版本并让它在 .bashrc 中自行初始化。
然后我做了...

conda update --all
conda update spyder

...然后我再次执行这两个操作以确保所有内容都已安装。

然后...

conda install -c conda-forge metpy

它安装了一个很好的版本(包括 xarray),现在 MetPy Gallery 中的示例可以像宣传的那样工作!