[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