Este post ajuda a resolver um problema que pode parecer um "mistério", mas que pode ser reparado facilmente.
Estou trabalhando em um projeto web usando Django e escolhemos o Heroku para ser o ambiente de testes/homologação da aplicação. A escolha do Heroku deve-se a aspectos como plataforma poliglota, facilidade no deploy e escalabilidade.
Durante os testes na aplicação identificamos um erro na funcionalidade de geração de relatórios em pdf. A biblioteca mas usada para trabalhar com pdf em Python é Reportlab. É realmente robusta mas pode ser mostra trabalhosa para gerar conteúdos complexos.
Alguns dos nossos relatórios utilizam imagens. Sem problemas, pois o reportlab tem suporte a imagens de diversos formatos. Entretanto apresentava erro na criação do arquivo quando o deploy era feito no Heroku.
Erro: 'NoneType' object has no attribute 'Image'
Inicialmente verificamos que todas as dependências do projeto estavam satisfeitas e localmente ele funcionava bem. Ainda assim havia uma suspeita de que o Reportlab estivesse nos pregando uma peça.
Foi aí que pembrei que o Reportlab utiliza a PIL internamente. Verifiquei o arquivo requirements.txt que lista as bibliotecas usadas no projeto a ser instaladas no Heroku, e não tinha a PIL instalada.
Instalei a PIL pelo pip no ambiente criado pelo virtualenv, atualizei o requirements.txt, fiz o deploy no Heroku e voilà!
Esse problema pode ocorrer em outros ambientes como Gondor.io.
Hasta la vista!
Assinar:
Postar comentários (Atom)
Um comentário:
bom dia ,
sou iniciante noi python,
preciso instalar reportlab, no Windows e no kali Linux,
mas não estou conseguindo ,
pode me ajudar?.
Desde já agradeço.
Postar um comentário