[Python] Problemi di deploy di web app su heroku

Perini Matteo perini.matteo a gmail.com
Lun 9 Gen 2023 19:17:46 CET


Ciao a tutti,

vi chiedo aiuto perchè sto riscontrando problemi a fare il deploy di una web app flask su heroku.

Credo che il problema stia nella creazione del virtual env su heroku.

L'app che ho costruito fa uso di varie librerie, tutte tranne una installabili tramite pip.
Una invece, PyOCC (porting per python di OpenCascade), non sono riuscito ad installarla ne con pip ne compilando i sorgenti.

Fortunatamente ho trovato un pacchetto conda già pronto e ho portato avanti tutto lo sviluppo dell'app in un conda env (pensando non vi fosse grande differenza con venv).

Adesso però per fare il deploy su heroku ho scoperto che bisogna generare da conda un requirements.txt che poi viene usato dallo script di heroku per creare l'ambiente (usando venv se non sbaglio).

Visto che non ne vengo a capo e il deploy si "rompe" sempre (penso perchè pip non riesce ad installare pyOCC), ho pensato di copiare la libreria OCC dall'environment conda alla mia cartella di progetto in modo da portarla dentro heroku come sorgente.

Naturalmente in locale tutto funziona bene.

Non so se ho spiegato abbastanza bene la situazione ma arrivo alle domande:

1) Ho capito bene? heroku usa venv? non posso usare un conda env in heroku giusto?

2) Se volessi spostare una libreria dall'ambiente conda alla cartella locale del progetto c'è un modo per farlo? come posso fare a importare OCC in modo corretto?

3) Ho provato a copiare la cartella OCC da conda in locale e cambiare tutti gli import per far puntare alla nuova cartella ma ottengo "segfault". Ipotizzo che sia dovuto al fatto che è un porting da C++. Idee?

4) avete altri suggerimenti?

E' la mia prima flask app un po' articolata e non sono molto esperto.

Grazie per ogni aiuto.

Ciao

Matteo

    
  
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20230109/db806487/attachment.html>


Maggiori informazioni sulla lista Python