[Python] Problemi di deploy di web app su heroku
Marco Giusti
marco.giusti a posteo.de
Mar 10 Gen 2023 09:56:40 CET
E' questo il pacchetto che devi installare [1]?
Guardando alle istruzione di installazione [2], non credo che sia
possibile create un file whl, quindi cercherei di risolvere la
compilazione del pacchetto dentro Heroku stesso.
[1] https://github.com/tpaviot/pythonocc-core
[2] https://github.com/tpaviot/pythonocc-core/blob/master/INSTALL.md
On 10.01.2023 09:50, Marco Giusti wrote:
> 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