Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

< Problema com o Deploy no Heroku >

Boa tarde pessoal, estou com problema para fazer o deploy no Heroku. Estou utilizando o Linux mint e Python versão 3.9 durante o deploy aparece o seguinte log de erro:

    TypeError: argument of type 'PosixPath' is not iterable
 !     Error while running '$ python manage.py collectstatic --noinput'.
       See traceback above for details.
       You may need to update application code to resolve this error.
       Or, you can disable collectstatic for this application:
          $ heroku config:set DISABLE_COLLECTSTATIC=1
       https://devcenter.heroku.com/articles/django-assets
 !     Push rejected, failed to compile Python app.
 !     Push failed
Para resolver essa questão segui os passos contidos nesse forum:

https://stackoverflow.com/questions/36665889/collectstatic-error-while-deploying-django-app-to-heroku

  1. desativar a collectstatic durante o Deploy
    $ heroku config:set DISABLE_COLLECTSTATIC=1
  2. fazer o Deploy
    $ git push heroku master
  3. Executar a migração
    $ heroku run python manage.py migrate
  4. Executar a coleção usando bower
    $ heroku run 'bower install --config.interactive=false;grunt prep;python manage.py collectstatic --noinput'
  5. Habilitar a coleção para futuros Deploys
    $ heroku config:unset DISABLE_COLLECTSTATIC

Porem, minha api não está funcionando. Simplesmente não esta rodando. Alguem saberia como contornar este problema?

6 respostas

Olá,

tem crtza que o problema é com o collectstatic?

Aparentemente está com problemas na utilização da pathlib. Talvez a sintaxe não esteja correta.

TypeError: argument of type 'PosixPath' is not iterable

Dê uma olhada no seu settings e se possível faça um teste utilizando a lib os ao invés de pathlib.

[]'s

Não me parece ser o settings. =/

Setting >> https://gist.github.com/guilhermegoesgarcia/162acaf6189dd7a0a9e590757ec2bbd9

Esta aparecendo esse erro no Log do Heroku

021-09-06T19:46:33.174236+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=cliente-api-drf.herokuapp.com request_id=e7bacda5-8c9b-4796-98c6-aa61ac3084ae fwd="191.23.71.70" dyno= connect= service= status=503 bytes= protocol=https

Tentei usar o comando:

heroku ps:scale web=1

Porem o heroku retorna a seguinte mensagem:

Scaling dynos... !
 ▸    Couldn't find that process type (web).

Olá,

o erro mudou?

Se quiser subir o projeto inteiro pro seu github posso testar pra vc.

[]'s

Vai ser de grande ajuda!! =)

Segue o link do projeto: https://github.com/guilhermegoesgarcia/clientes_APIdjango

solução!

Olá,

Problema:

Notei que existiam alguns problemas que poderiam estar impedindo o deploy:

  • variável STATIC_ROOT não configurada
  • variável heroku não configurada
  • incompatibilidade de libs instaladas
  • falta de arquivo Procfile/runtime

Não sei precisar ao certo o que era, mas realizando os passos abaixo o problema foi resolvido.

Solução:

fiz algumas alterações para deixar funcional, onde basicamente foram:

  • atualizei o requirements.txt: removi libs como heroku*, postgres* e pyscopg* que na minha opinião são desnecessárias. Deixei somente a psycopg-binary==2.8.6
  • instalei duas libs que gosto de utilizar:
    • python-decouple: desacopla variáveis de ambiente, evitando o envio de secret-key e outras configs para o github
    • dj-static: auxilia na entrega de arquivos estáticos para qdo não utilizamos cdn. Vai notar tbm que para utilizar essa lib, é preciso fazer uma pequena alteração no arquivo wsgi.py
  • Config dos arquivos Procfile e runtime por isso adicionei-os, são importantes para o deploy.
  • Config da variável STATIC_ROOT no config
  • Config da variável DATABASES que caso estiver em ambiente local utilizará sqlite, caso estive no heroku utilizará postgres.

Além disso, como agora, com a decouple vc não tem mais algumas variáveis no settings.py, é importante tbm configurá-las no heroku, seja utilizando o cli ou no próprio dashboard, como achar melhor.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Coloquei aqui todas as alterações feitas: problema-com-deploy-no-heroku

Importante: Optei por utilizar como base o branch main, que aparentemente era o mais recente.

Deploy da app: https://problema-com-deploy-no-heroku.herokuapp.com/

[]'s

Finalmente consegui subir o projeto!! https://cliente-api-drf.herokuapp.com/

vlw pela ajudaa Luciano!!

=)