VS Code中Jupyter Notebook导入matplotlib失败求助
错误信息
ImportError Traceback (most recent call last)
Cell In[1], line 1
----> 1 import matplotlibFile c:\Users\usr\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib_init_.py:174
170 from packaging.version import parse as parse_version
172 # cbook must import matplotlib only within function
173 # definitions, so it is safe to import from it here.
--> 174 from . import _api, _version, cbook, _docstring, rcsetup
175 from matplotlib.cbook import sanitize_sequence
176 from matplotlib._api import MatplotlibDeprecationWarningFile c:\Users\usr\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\cbook_init_.py:32
30 import matplotlib
31 from matplotlib import _api, _c_internal_utils
---> 32 from matplotlib._api.deprecation import (
33 MatplotlibDeprecationWarning, mplDeprecation)
36 @_api.deprecated("3.4")
37 def deprecated(*args, **kwargs):
38 return _api.deprecated(*args, **kwargs)ImportError: cannot import name 'mplDeprecation' from 'matplotlib._api.deprecation' (c:\Users\usr\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib_api\deprecation.py)
问题原因
- API移除与安装损坏:
mplDeprecation在matplotlib 3.6及以上版本已被正式移除,但你的matplotlib/cbook/__init__.py仍在尝试导入该对象,说明升级过程中安装不完整,残留了旧版本文件,或安装包损坏。 - 无法降级的可能因素:pip缓存残留、权限不足、依赖冲突,或环境中存在其他包管理工具干扰了pip的操作。
解决步骤
1. 彻底清理并重装matplotlib
- 强制卸载现有matplotlib:
pip uninstall -y matplotlib - 手动删除残留文件:前往路径
c:\Users\usr\AppData\Local\Programs\Python\Python310\lib\site-packages,删除所有名称包含matplotlib的文件夹和.egg-info后缀文件。 - 清理pip缓存:
pip cache purge - 重新安装指定版本(推荐稳定版3.7.5或当前版本3.8.3):
或pip install matplotlib==3.7.5pip install matplotlib==3.8.3
2. 验证VS Code Jupyter环境
- 确认VS Code使用的Python解释器为目标版本:点击左下角的Python版本标识,选择
c:\Users\usr\AppData\Local\Programs\Python\Python310\python.exe。 - 在Jupyter Notebook中运行以下代码验证环境:
输出需匹配上述路径,避免误用虚拟环境或其他Python版本。import sys print(sys.executable)
3. 解决无法降级的问题
- 若卸载/安装提示权限不足,以管理员身份打开命令提示符再执行命令。
- 强制重装旧版本,跳过依赖检查:
pip install --force-reinstall --no-deps matplotlib==3.7.5
内容的提问来源于stack exchange,提问作者iko79

