[Python] Problemi di deploy di web app su heroku

Marco Giusti marco.giusti a posteo.de
Mar 10 Gen 2023 09:50:03 CET


Ciao Matteo,

provo ad aiutarti, ma non ho esperienza ne' con Heroku ne' con Conda.
Faccio qualche ipotesi che poi tocca a te verificare.

Le librerie scritte in C/C++ sono più complicate delle librerie in puro
python perché non sempre si ha un compilatore o tutte le dipendenze
disponibili. Inoltre il codice oggetto compilato non è generalmente
portabile da una macchina ad un'altra.

Il mio primo consiglio è di cercare di risolvere la compilazione di
pyOCC in Heroku, perché mi sembra di capire che hai un compilatore
disponibile. Posta l'output di pip quando installi la tua web app e
forse ti possiamo aiutare con quello.

Se compilare pyOCC in Heroku non è possibile, puoi provare a creare un
whl localmente di pyOCC e usare quello in Heroky. Anche se compilare i
file whl dovrebbero essere più portabili, fermo stante che la versione
dell'interprete e l'architettura siano le stesse. Sono quasi sicuro che
al momento dell'installazione puoi dire a pip dove andare a cercare i
pacchetti da installare.

Marco


On 09.01.2023 19:17, Perini Matteo wrote:
> 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
> 
> 
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> https://lists.python.it/mailman/listinfo/python



Maggiori informazioni sulla lista Python