J'essaye de générer en vrac 4 thumnails pour chacune des 40k images avec sorl-thumbnail pour mon application django. Je parcoure tous les objets django avec un ImageWithThumbnailsFieldFile, puis appelle sa fonction generate_thumbnails().Génération Django/Python/PIL/vignette en vrac - erreur de mémoire
Cela fonctionne bien, sauf qu'après quelques centaines d'itérations, je n'ai plus de mémoire et ma boucle se bloque avec 'erreur de mémoire'. Étant donné que sorl-thumbnail utilise PIL pour générer des pouces, il semble que PIL ne renvoie pas toute la mémoire utilisée lors de la génération d'un pouce.
Quelqu'un peut-il éviter ce problème, par ex. en forçant PIL à retourner la mémoire dont il n'a plus besoin?
mon code ressemble simplement ceci:
all = Picture.objects.all()
for i in all:
i.image.generate_thumbnails()
La fonction de générer vignettes commence here, ligne 129.
Merci à l'avance pour tout conseil!
Martin
merci pour la réponse, cela fonctionne comme un charme, je pense que votre code devrait avoir lu: all = Picture.objects..iterator() – Hoff
Mise à jour - Désolé, je l'ai laissé deviner le plus important partie. – sheats