尝试在Azure中使用matplotlib时出现“ ModuleNotFoundError:没有名为'tkinter'的模块”

时间:2019-06-27 14:30:44

标签: python azure matplotlib tkinter

我正在尝试通过Web应用程序上的WebJob在Azure的Python脚本上使用()。我收到以下错误:

enter image description here

导入matplotlib时显然会出现错误,但是基于this,看来tkinter在Azure中不可用。对我来说这不是问题,因为当我使用它时,我只是在创建一个PNG,所以我相信我实际上并不需要它。

如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

您不能使用questionDaoMock.findAll()安装tkinter吗?

我通常必须先以这种方式安装软件包,然后才能起作用。

答案 1 :(得分:0)

根据WebJob的日志,您正在使用Windows的Azure WebApp来运行它。不幸的是,由于Azure Web App sandbox中的Win32k.sys (User32/GDI32) Restrictions,即使解决了当前问题,通过matplotlib创建PNG的工作也永远不会为您服务,因为matplotlib需要{ {1}}。

enter image description here

因此,我建议您尝试使相同的Python脚本在Linux上运行,并使用GDI来触发它,并编写Dockerfile或构建Docker映像以在Linux的Azure WebApp上进行部署。请先参考官方文档Create a Python app in Azure App Service on Linux

答案 2 :(得分:0)

我通过此方法解决了这个问题。

import matplotlib 
matplotlib.use('agg')
import matplotlib.pyplot as plt