0
votes

"MODULENOTFOUNDERROR: Aucun module nommé" Tkinter "" lorsque vous essayez d'utiliser matplotlib à Azure

Je tente d'utiliser matplotlib sur un script Python dans Azure, à l'aide d'un WebJob sur une application Web. Je reçois l'erreur ci-dessous:

 Entrez la description de l'image ici

L'erreur est évidemment lorsque l'importation tkinter , mais basée sur Ce , il apparaît tkinter n'est pas disponible en azur. Ce n'est pas un problème pour moi, comme quand je l'utilise, je crée un PNG, alors je crois que je n'en ai pas besoin en réalité.

Comment puis-je contourner ce problème?


5 commentaires

Vous ne pouvez pas installer de choses sur votre serveur?


Je ne suis pas complètement sûr de ce que vous voulez dire, mais j'ai pu installer des modules à l'aide de PIP, si c'est ce que vous demandez?


Quelle version de Python utilisez-vous? tkinter est appelé tkinter dans python 2.


La version est python 3.6.4


Et si vous modifiez le Backend ? Essayez après le importer matplotlib.pyplot comme PL T avec matplotlib.use ('AGG')


3 Réponses :


0
votes

Vous ne pouvez pas installer tkinter avec sudo apt-get install python-tk ?

Je dois habituellement installer l'emballage de cette façon avant de fonctionner.


4 commentaires

Je reçois cette erreur: sudo: le terme 'sudo' n'est pas reconnu comme le nom d'une cmdlet, une fonction, un fichier de script ou un programme d'opérable. Vérifiez l'orthographe du nom ou si un chemin a été inclus, vérifiez que le chemin est correct et réessayez. est-ce parce que je suis sur Windows? Si oui, quel est le sudo équivalent pour Windows?


L'installateur Python pour Windows inclut Tkinter par défaut. Avez-vous installé Python avec l'exécutable de Python.org?


J'ai choisi l'option python 3.6.4 x64 dans la section Extensions de My Azure Web APP


De plus, le lien Vous avez publié des États pour copier des fichiers d'une installation existante de Python, peut-être copier C: \ users \ \ appdata \ local \ Programmes \ Python \ python37-32 \ li b \ tkinter à la machine.



0
votes

Selon les journaux de votre webjob, vous utilisez Azure WebApp pour Windows pour l'exécuter. Malheureusement, en raison de la Win32k. SYS (User32 / GDI32) Restrictions de Azure Web App Box , le travail pour créer un PNG par MATPLOTLIB ne fonctionnera jamais pour vous, même Après avoir corrigé le problème actuel, car matplotlib nécessite gdi .

 Entrez la description de l'image ici

Donc, je suggère que vous puissiez essayer de faire fonctionner le même script Python fonctionne sous Linux et à utiliser crontab pour le déclencher, et pour écrire un dockerfile ou créer une image Docker pour le déploiement sur Azure WebApp pour Linux . Veuillez vous reporter au document offical Créer un Python App dans Azure App Service sur Linux pour obtenir le début.


0 commentaires

3
votes

J'ai résolu ce problème à travers cela.

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


0 commentaires