Я пытаюсь использовать matplotlib для скрипта Python в Azure, используя WebJob в веб-приложении. Я получаю ошибку ниже:

enter image description here

Ошибка, очевидно, возникает при импорте tkinter, но она основана на этом кажется, tkinter недоступен в Azure. Это не проблема для меня, так как когда я его использую, я просто создаю PNG, так что я считаю, что он мне на самом деле не нужен.

Как я могу обойти эту проблему?

0
OD1995 27 Июн 2019 в 17:30

3 ответа

Лучший ответ

Я решил эту проблему через это.

import matplotlib 
matplotlib.use('agg')
import matplotlib.pyplot as plt
2
user9724030 14 Июл 2019 в 09:26

Вы не можете установить tkinter с sudo apt-get install python-tk?

Обычно я должен установить пакет таким образом, прежде чем он заработает.

0
boostedd 27 Июн 2019 в 15:45

Согласно журналам вашего WebJob, вы используете Azure WebApp для Windows для его запуска. К сожалению, из-за Win32k.sys (User32/GDI32) Restrictions из Azure Web App sandbox, задание на создание PNG с помощью matplotlib никогда не будет работать для вас, даже после исправления текущей проблемы, потому что matplotlib требует GDI.

enter image description here

Поэтому я предлагаю вам попытаться заставить тот же скрипт Python работать в Linux и использовать crontab для его запуска, а также написать Dockerfile или создать образ Docker для развертывания в Azure WebApp для Linux. Пожалуйста, обратитесь к официальному документу Create a Python app in Azure App Service on Linux чтобы начать.

0
Peter Pan 28 Июн 2019 в 04:20