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

Azure部署Jupyter Notebook Python代码时内核崩溃问题求助

Azure Jupyter Notebook中OpenCV显示图像导致内核崩溃的解决办法

问题详情

本地Jupyter Notebook能正常运行的代码,部署到Azure云端后,除最后一段OpenCV显示图像的代码外,其余部分均正常。但运行到cv2.imshow时,出现内核崩溃错误:

Kernel Restarting
The kernel appears to have died. It will restart automatically.

相关代码骨架:

!pip install opencv-python
!pip install numpy
!pip install tensorflow
!pip install -U numpy
!pip install ipykernel ipython jupyter_client jupyter_core traitlets ipython_genutils
!pip install numpy --upgrade
!pip install nomkl
!pip update --all
!apt-get update
!apt-get install ffmpeg libsm6 libxext6  -y
!pip install matplotlib
!pip install -c intel mkl


import cv2
image=cv2.imread('img_1.jpg')
image.shape
image[0]
import matplotlib.pyplot as plt
plt.imshow(image)

# 从此处开始报错

while True:
   cv2.imshow('Image',image)
   if cv2.waitKey(2) == 27:
    # 27是Esc键的ASCII码
    break
cv2.destroyAllWindows()

原因

cv2.imshow需要本地图形界面(GUI)支持才能创建显示窗口,但Azure Jupyter Notebook是云端无桌面环境,没有对应的显示后端,直接调用会触发内核异常崩溃。本地运行时系统自带桌面环境,所以能正常执行。

解决方案

方案1:用Matplotlib显示图像(推荐)

直接使用已导入的Matplotlib替代OpenCV的窗口显示,注意转换图像格式(OpenCV读入的是BGR,Matplotlib默认用RGB显示):

import cv2
import matplotlib.pyplot as plt

image = cv2.imread('img_1.jpg')
# 转换颜色通道格式
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
plt.imshow(image_rgb)
plt.title('Image')
plt.axis('off')  # 隐藏坐标轴,让显示更整洁
plt.show()

方案2:保存图像后查看

如果需要保留类似交互逻辑,可将图像保存为文件,在Azure Notebook左侧的文件浏览器中点击查看:

import cv2

image = cv2.imread('img_1.jpg')
cv2.imwrite('display_image.jpg', image)
# 执行后到左侧文件列表找到display_image.jpg,点击即可查看

额外优化

清理代码中重复的依赖安装命令,避免环境冲突,精简后的安装命令如下:

!apt-get update && apt-get install ffmpeg libsm6 libxext6 -y
!pip install opencv-python numpy tensorflow matplotlib nomkl --upgrade

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:26:06