背景
就在两个月前,我有一个工作的python脚本,我经常使用它将netcdf4天气文件组合在一起。
然而,自从我最近更新了我的笔记本电脑,重新安装了python(根据I.T.政策为3.7)和最新的python库,并且脚本已经停止工作以来,似乎有一些东西被弃用了,这导致我的代码停止工作。
问题
我收到错误消息:AttributeError:“EntryPoints”对象没有属性“get”
我所尝试的
我提到了SO上的其他帖子(
link
,
link
)。从中我可以看出这个问题是由importlib元数据(v5.0.0.0+)引起的,它是标准python安装的一部分(包括3.7)(我的机器上有importlib-metadata-6.6.0)
我尝试降级到旧版本(importlib元数据4.0.0),但这导致了不同的问题。
我还要求I.T.将我的python更新到更高版本(3.9、3.10等)。但显然,这是一个可能需要很长时间才能完成的整个过程。
请求的帮助
任何人都知道我该如何解决这个问题。
错误消息示例
Traceback (most recent call last):
File "C:/Users/User/PycharmProjects/project/python_script.py", line 59, in get_era5
merge_netcdf4 = xr.open_mfdataset(list, combine='by_coords')
File "C:/Users/User/PycharmProjects/project\venv\lib\site-packages\xarray\backends\api.py", line 908, in open_mfdataset
datasets = [open_(p, **open_kwargs) for p in paths]
File "C:/Users/User/PycharmProjects/project\venv\lib\site-packages\xarray\backends\api.py", line 908, in <listcomp>
datasets = [open_(p, **open_kwargs) for p in paths]
File "C:/Users/User/PycharmProjects/project\venv\lib\site-packages\xarray\backends\api.py", line 479, in open_dataset
engine = plugins.guess_engine(filename_or_obj)
File "C:/Users/User/PycharmProjects/project\venv\lib\site-packages\xarray\backends\plugins.py", line 110, in guess_engine
engines = list_engines()
File "C:/Users/User/PycharmProjects/project\venv\lib\site-packages\xarray\backends\plugins.py", line 105, in list_engines
entrypoints = entry_points().get("xarray.backends", ())
AttributeError: 'EntryPoints' object has no attribute 'get'
示例代码
for single_date in daterange(start_date, end_date):
YYYY = single_date.strftime("%Y")
MM = single_date.strftime("%m")
DD = single_date.strftime("%d")
fname = fpath + YYYY + MM + DD + '_era5.nc'
list.append(fname)
# Details
lat_toplot = np.arange(25.25, 25.50, 0.25) # last number is exclusive
lon_toplot = np.arange(140.25, 140.50, 0.25) # last number is exclusive
merge_netcdf4 = xr.open_mfdataset(list, combine='by_coords').sel(longitude=lon_toplot, latitude=lat_toplot)