You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04升级Python至3.9后Matplotlib导入失败求助

Python3.9设为默认后Matplotlib导入PIL报错的解决办法

问题背景

原本使用Python 3.8,升级至Python 3.9并设为默认版本:

user@user-desktop:/usr/lib$ python3 --version
Python 3.9.5

导入matplotlib时出现以下错误:

usr@user-desktop:/usr/lib$ python3
Python 3.9.5 (default, Nov 23 2021, 15:27:38) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/user/.local/lib/python3.9/site-packages/matplotlib/__init__.py", line 113, in <module>
    from . import _api, _version, cbook, _docstring, rcsetup
  File "/home/user/.local/lib/python3.9/site-packages/matplotlib/rcsetup.py", line 27, in <module>
    from matplotlib.colors import Colormap, is_color_like
  File "/home/user/.local/lib/python3.9/site-packages/matplotlib/colors.py", line 51, in <module>
    from PIL import Image
  File "/usr/lib/python3/dist-packages/PIL/Image.py", line 69, in <module>
    from . import _imaging as core
ImportError: cannot import name '_imaging' from 'PIL' (/usr/lib/python3/dist-packages/PIL/__init__.py)

用户已尝试的操作均无效:

  • 卸载PIL/Pillow失败,系统包无法删除
  • 重新安装Pillow时提示已存在系统版本
  • 手动创建python3到3.9的软链接未生效

核心原因

系统目录/usr/lib/python3/dist-packages下的Pillow 7.0.0是为Python3.8编译的二进制包,与Python3.9不兼容,导致无法加载_imaging核心模块。同时pip默认优先使用系统包,无法直接覆盖安装。

解决步骤

1. 强制为Python3.9安装兼容的Pillow版本

直接用Python3.9的pip工具,在用户目录重新安装兼容版本,优先级高于系统包:

python3.9 -m pip install --user --force-reinstall Pillow

--user参数会将包安装到~/.local/lib/python3.9/site-packages,Python3.9会优先加载这个目录的模块,避开系统中不兼容的版本。

2. 验证修复效果

打开Python3.9终端测试:

import PIL
print(PIL.__file__)
# 预期输出:/home/user/.local/lib/python3.9/site-packages/PIL/__init__.py
import matplotlib
# 无报错则说明修复成功

3. 规范设置默认Python版本(可选)

手动创建软链接容易和系统alternatives冲突,建议用系统工具管理默认版本:

# 注册Python3.8和3.9到alternatives
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2
# 选择默认版本
sudo update-alternatives --config python3

按提示输入对应数字选择Python3.9即可完成默认版本设置。

内容的提问来源于stack exchange,提问作者stochasticlover1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 10:30:53