繁体   English   中英

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

[英]“ModuleNotFoundError: No module named 'tkinter'” when trying to use matplotlib in Azure

我试图通过Web应用程序上的WebJob在Azure的Python脚本上使用matplotlib 我收到以下错误:

在此处输入图片说明

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

我该如何解决这个问题?

我通过这个解决了这个问题。

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

您不能使用sudo apt-get install python-tk吗?

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

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

在此处输入图片说明

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM