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

在Linux终端运行Python代码显示PNG图片时出现NameError问题求助

解决Linux终端中Python调用display()报错的问题

display()是Jupyter Notebook/Lab环境的内置函数,普通Linux终端没有这个函数,所以会抛出NameError。下面是几种适合终端环境的图片显示方案:

方案1:使用PIL自带的show()方法

PIL的Image对象自带show()方法,它会调用系统默认的图片查看器(比如Eye of GNOME、gwenview等)打开图片,无需额外依赖(前提是系统已安装图片查看器)。

修改后的代码:

from PIL import Image
im = Image.open("/content/sample_1.png")
im.show()

如果运行后提示找不到查看器,Ubuntu/Debian系统可以安装默认查看器:

sudo apt install eog  # Eye of GNOME,GNOME桌面默认查看器
# 或者安装imagemagick(兼容更多格式)
sudo apt install imagemagick

方案2:使用matplotlib库显示

如果需要在脚本中直接显示图片(依赖图形环境),可以用matplotlib:

首先安装matplotlib:

pip install matplotlib

修改后的代码:

from PIL import Image
import matplotlib.pyplot as plt

im = Image.open("/content/sample_1.png")
plt.imshow(im)
plt.axis('off')  # 隐藏坐标轴
plt.show()

注意:如果是无图形界面的远程服务器,需要配置X11转发(终端连接时加-X参数),或者设置matplotlib后端为非交互式(比如plt.switch_backend('Agg'),但这样只会保存图片而不显示)。

方案3:文本模式显示ASCII艺术图(纯终端无图形环境)

如果你的终端没有图形环境,可以将图片转换成ASCII艺术图显示,需要用到第三方库ascii_magic:

安装库:

pip install ascii_magic

代码示例:

from PIL import Image
import ascii_magic

im = Image.open("/content/sample_1.png")
ascii_magic.to_terminal(im)

这样会在终端里以ASCII字符的形式展示图片轮廓。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:55:17