求助:运行Python代码出现AttributeError: pkg_resources无appdirs属性
解决
AttributeError: module 'pkg_resources' has no attribute 'appdirs'错误 问题详情
运行调用OvationPyme库的Python代码时触发AttributeError,错误提示为module 'pkg_resources' has no attribute 'appdirs'。
错误回溯信息:
AttributeError Traceback (most recent call last) /tmp/ipykernel_10658/1029138787.py in <module> 2 import datetime 3 import matplotlib.pyplot as plt ----> 4 from ovationpyme.ovation_prime import FluxEstimator,AverageEnergyEstimator,BinCorrector 5 from ovationpyme.ovation_utilities import calc_avg_solarwind 6 from ovationpyme.ovation_plotting import latlt2polar,polar2dial,pcolor_flux ~/anaconda3/lib/python3.9/site-packages/ovationpyme-0.1.0-py3.9.egg/ovationpyme/__init__.py in <module> ----> 1 from . import ovation_prime 2 from . import ovation_utilities 3 from . import ovation_plotting ~/anaconda3/lib/python3.9/site-packages/ovationpyme-0.1.0-py3.9.egg/ovationpyme/ovation_prime.py in <module> 10 from scipy import interpolate 11 ----> 12 from ovationpyme import ovation_utilities 13 14 from ovationpyme.ovation_utilities import robinson_auroral_conductance ~/anaconda3/lib/python3.9/site-packages/ovationpyme-0.1.0-py3.9.egg/ovationpyme/ovation_utilities.py in <module> 9 10 from geospacepy import special_datetime, sun ----> 11 from nasaomnireader.omnireader import omni_interval 12 from logbook import Logger 13 log = Logger('OvationPyme.ovation_utilites') ~/anaconda3/lib/python3.9/site-packages/nasaomnireader-0.1.0-py3.9.egg/nasaomnireader/__init__.py in <module> 1 # (C) 2020 University of Colorado AES-CCAR-SEDA (Space Environment Data Analysis) Group 2 # Written by Liam M. Kilcommons ----> 3 from nasaomnireader.default_config import config ~/anaconda3/lib/python3.9/site-packages/nasaomnireader-0.1.0-py3.9.egg/nasaomnireader/default_config.py in <module> 6 src_file_dir = os.path.dirname(os.path.realpath(__file__)) 7 ----> 8 appdirs = pkg_resources.appdirs.AppDirs('nasaomnireader','cuseda') 9 10 data_dir = appdirs.user_data_dir #~/.local/share/AMGeO on Ubuntu AttributeError: module 'pkg_resources' has no attribute 'appdirs'
运行的代码:
import numpy as np import datetime import matplotlib.pyplot as plt from ovationpyme.ovation_prime import FluxEstimator,AverageEnergyEstimator,BinCorrector from ovationpyme.ovation_utilities import calc_avg_solarwind from ovationpyme.ovation_plotting import latlt2polar,polar2dial,pcolor_flux from geospacepy.spherical_geometry import grid_surface_integral import ipywidgets from collections import OrderedDict from functools import partial
解决方案
该错误源于nasaomnireader旧版本依赖pkg_resources.appdirs,但新版setuptools已移除该属性,可通过以下两种方式解决:
方法一:替换依赖并修改代码
- 先安装独立的
appdirs库:
pip install appdirs
- 找到
nasaomnireader的default_config.py文件(路径示例:~/anaconda3/lib/python3.9/site-packages/nasaomnireader-0.1.0-py3.9.egg/nasaomnireader/default_config.py),修改内容:- 添加
import appdirs,移除原有的import pkg_resources(如果存在) - 将第8行的
pkg_resources.appdirs.AppDirs改为appdirs.AppDirs
- 添加
方法二:更新nasaomnireader到兼容版本
如果库有更新版本,直接升级即可,新版本大概率已修复该依赖问题:
pip install --upgrade nasaomnireader
内容的提问来源于stack exchange,提问作者ankush
相关产品推荐
相关产品推荐

