【Python小技巧】移花接木解决[Errno 2] No such file or directory: ‘matplotlib-3.8.4.dist-info\\METADATA‘问题

问题描述

最近pip安装库,总是提示:

WARNING: Error parsing requirements for matplotlib: [Errno 2] No such
file or directory:
‘d:\programdata\anaconda3\lib\site-packages\matplotlib-3.8.4.dist-info\METADATA’

搞得人很郁闷,这是要闹哪样?

(base) C:\Users\Administrator>pip install pyexecjs -U
Requirement already satisfied: pyexecjs in d:\programdata\anaconda3\lib\site-packages (1.5.1)
Requirement already satisfied: six>=1.10.0 in d:\programdata\anaconda3\lib\site-packages (from pyexecjs) (1.16.0)
WARNING: Error parsing requirements for matplotlib: [Errno 2] No such file or directory: 'd:\\programdata\\anaconda3\\lib\\site-packages\\[Errno 2] No such file or directory: 'd:\\programdata\\anaconda3\\lib\\site-packages\\matplotlib-3.8.4.dist-info\\METADATA'


原因分析:

既然是matplotlib的问题,那就升级一下吧,通常来说升级治百病。

(base) C:\Users\Administrator>pip install matplotlib -U
Requirement already satisfied: matplotlib in d:\programdata\anaconda3\lib\site-packages (3.8.4)
Collecting matplotlib
  Downloading matplotlib-3.9.2-cp310-cp310-win_amd64.whl.metadata (11 kB)
Requirement already satisfied: contourpy>=1.0.1 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (1.2.0)
Requirement already satisfied: cycler>=0.10 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (0.11.0)
Requirement already satisfied: fonttools>=4.22.0 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (4.51.0)
Requirement already satisfied: kiwisolver>=1.3.1 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (1.4.4)
Requirement already satisfied: numpy>=1.23 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (1.26.4)
Requirement already satisfied: packaging>=20.0 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (23.2)
Requirement already satisfied: pillow>=8 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (9.4.0)
Requirement already satisfied: pyparsing>=2.3.1 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (2.9.0.post0)
Requirement already satisfied: six>=1.5 in d:\programdata\anaconda3\lib\site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)
Downloading matplotlib-3.9.2-cp310-cp310-win_amd64.whl (7.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.8/7.8 MB 166.2 kB/s eta 0:00:00
WARNING: Error parsing requirements for matplotlib: [Errno 2] No such file or directory: 'd:\\programdata\\anaconda3\\lib\\site-packages\\matplotlib-3.8.4.dist-info\\METADATA'
Installing collected packages: matplotlib
  Attempting uninstall: matplotlib
    WARNING: No metadata found in d:\programdata\anaconda3\lib\site-packages
    Found existing installation: matplotlib 3.8.4
ERROR: Cannot uninstall matplotlib 3.8.4, RECORD file not found. You might be able to recover from this via: 'pip install --force-reinstall --no-deps matplotlib==3.8.4'.

按提示执行pip install --force-reinstall --no-deps matplotlib==3.8.4

(base) C:\Users\Administrator>pip install --force-reinstall --no-deps matplotlib==3.8.4
Collecting matplotlib==3.8.4
  Using cached matplotlib-3.8.4-cp310-cp310-win_amd64.whl.metadata (5.9 kB)
Using cached matplotlib-3.8.4-cp310-cp310-win_amd64.whl (7.7 MB)
Installing collected packages: matplotlib
  Attempting uninstall: matplotlib
    WARNING: No metadata found in d:\programdata\anaconda3\lib\site-packages
    Found existing installation: matplotlib 3.8.4
ERROR: Cannot uninstall matplotlib 3.8.4, RECORD file not found. You might be able to recover from this via: 'pip install --force-reinstall --no-deps matplotlib==3.8.4'.

问题并没有解决!

故意指定一个特大版本号,pip install matplotlib==100,显示一下目前可用版本:

(base) C:\Users\Administrator>pip install matplotlib==100
ERROR: Ignored the following yanked versions: 3.9.1
ERROR: Could not find a version that satisfies the requirement matplotlib==100 (from versions: 0.86, 0.86.1, 0.86.2, 0.91.0, 0.91.1, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1, 1.3.0, 1.3.1, 1.4.0, 1.4.1rc1, 1.4.1, 1.4.2, 1.4.3, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 2.0.0b1, 2.0.0b2, 2.0.0b3, 2.0.0b4, 2.0.0rc1, 2.0.0rc2, 2.0.0, 2.0.1, 2.0.2, 2.1.0rc1, 2.1.0, 2.1.1, 2.1.2, 2.2.0rc1, 2.2.0, 2.2.2, 2.2.3, 2.2.4, 2.2.5, 3.0.0rc2, 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.1.0rc1, 3.1.0rc2, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.2.0rc1, 3.2.0rc3, 3.2.0, 3.2.1, 3.2.2, 3.3.0rc1, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.4.0rc1, 3.4.0rc2, 3.4.0rc3, 3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.5.0b1, 3.5.0rc1, 3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.6.0rc1, 3.6.0rc2, 3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.7.0rc1, 3.7.0, 3.7.1, 3.7.2, 3.7.3, 3.7.4, 3.7.5, 3.8.0rc1, 3.8.0, 3.8.1, 3.8.2, 3.8.3, 3.8.4, 3.9.0rc2, 3.9.0, 3.9.1.post1, 3.9.2)
ERROR: No matching distribution found for matplotlib==100

pip show matplotlib显示一下当前安装的版本:

(base) C:\Users\Administrator>pip show matplotlib
ERROR: Exception:
Traceback (most recent call last):
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 3109, in _dep_map
    return self.__dep_map
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2902, in __getattr__
    raise AttributeError(attr)
AttributeError: _DistInfoDistribution__dep_map

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 3100, in _parsed_pkg_info
    return self._pkg_info
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2902, in __getattr__
    raise AttributeError(attr)
AttributeError: _pkg_info

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_internal\cli\base_command.py", line 180, in exc_logging_wrapper
    status = run_func(*args)
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_internal\commands\show.py", line 45, in run
    if not print_results(
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_internal\commands\show.py", line 150, in print_results
    for i, dist in enumerate(distributions):
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_internal\commands\show.py", line 103, in search_packages_info
    requires = sorted((req.name for req in dist.iter_dependencies()), key=str.lower)
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_internal\metadata\pkg_resources.py", line 221, in iter_dependencies
    return self._dist.requires(extras)
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2822, in requires
    dm = self._dep_map
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 3111, in _dep_map
    self.__dep_map = self._compute_dependencies()
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 3120, in _compute_dependencies
    for req in self._parsed_pkg_info.get_all('Requires-Dist') or []:
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 3102, in _parsed_pkg_info
    metadata = self.get_metadata(self.PKG_INFO)
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1519, in get_metadata
    value = self._get(path)
  File "d:\ProgramData\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1727, in _get
    with open(path, 'rb') as stream:
FileNotFoundError: [Errno 2] No such file or directory: 'd:\\programdata\\anaconda3\\lib\\site-packages\\matplotlib-3.8.4.dist-info\\METADATA'


解决方案:

既然是缺少目录,那就找个电脑安装一下3.8.4版本,把缺失的那个目录文件挪过来试试。
在这里插入图片描述
复制粘贴完毕后,再运行pip show matplotlib,可以发现已不再提示错误信息了。

(base) C:\Users\Administrator>pip show matplotlib
Name: matplotlib
Version: 3.8.4
Summary: Python plotting package
Home-page: https://matplotlib.org
Author: John D. Hunter, Michael Droettboom
Author-email: matplotlib-users@python.org
License: PSF
Location: d:\programdata\anaconda3\lib\site-packages
Requires: contourpy, cycler, fonttools, kiwisolver, numpy, packaging, pillow, pyparsing, python-dateutil
Required-by: catboost, czsc, gradio, mplfinance, pyfolio, qstock, seaborn, wordcloud

(base) C:\Users\Administrator>pip install pyexecjs -U
Requirement already satisfied: pyexecjs in d:\programdata\anaconda3\lib\site-packages (1.5.1)
Requirement already satisfied: six>=1.10.0 in d:\programdata\anaconda3\lib\site-packages (from pyexecjs) (1.16.0)

(base) C:\Users\Administrator>pip show pyexecjs
Name: PyExecJS
Version: 1.5.1
Summary: Run JavaScript code from Python
Home-page: https://github.com/doloopwhile/PyExecJS
Author: Omoto Kenji
Author-email: doloopwhile@gmail.com
License: MIT License
Location: d:\programdata\anaconda3\lib\site-packages
Requires: six
Required-by: pywencai, qstock, wencai

(base) C:\Users\Administrator>

至此,问题解决。


总结

安装了anaconda,使用pip安装第三方库,其实就是给anaconda3\Lib\site-packages添加东西而已。如果因为各种原因导致冲突或者误删文件,只要把文件凑齐放到该目录下,问题一般都可以顺利解决。

甚至不使用pip命令安装,只需要把其它电脑对应的包安装的目录复制过来也是可以用的,当然这个需要python的版本是一致的。一般还是用pip安装,避免不必要的麻烦,毕竟还有库依赖的问题。

好了,就聊到这里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT里的交易员

分享是一种快乐,打赏是一种肯定

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值