Topic: Progetto in Python  (Letto 96 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Valentina9213

  • python unicellularis
  • *
  • Post: 13
  • Punti reputazione: 0
    • Mostra profilo
Progetto in Python
« il: Marzo 30, 2021, 16:44 »
Buongiorno a tutti.
Premetto che sto usando PyCharm su Windows 10, quindi ho fatto un progetto in Python e questo lo dovrò portare in un altro sistema operativo o in un altro dispositivo, integrando le librerie che ho utilizzato (quindi creare un pacchetto di installazione con il mio progetto e le librerie, senza che l'altro utente che lo utilizzerà non deve installare le librerie che ho utilizzato io, ma funziona correttamente).
Volevo sapere se qualcuno di voi si è trovato nella mia stessa situazione e quindi capire come posso fare.

Grazie in anticipo.

Offline nuzzopippo

  • python neanderthalensis
  • ****
  • Post: 385
  • Punti reputazione: 0
    • Mostra profilo
Re:Progetto in Python
« Risposta #1 il: Marzo 31, 2021, 08:01 »
Ciao @Valentina

Pur non essendomi mai trovato nella Tua situazione, principalmente in merito a PyCharm e Windows10 (mai utilizzati entrambi), se con "altro sistema operativo" intendi un s.o. proprio diverso da win10 credo Tu abbia un discorso in salita, creare un eseguibile (è di questo che parli, vero?) per un s.o. non equivale a crearlo "anche" per un altro, strutturalmente le compilazioni sarebbero diverse, dovresti "compilare" specificatamente "per" e "su" i singoli s.o. di destinazione ... probabilmente, ci potrebbero anche essere problemi sulle versioni di s.o. (32/64 bit, etc.)

Per altro, piccoli eseguibili per linux e su linux li ho "creati" (da linea di comando, non uso IDE vari) tramite PyInstaller, modulo che dovrebbe esistere anche per windows (non ho modo di verificare) ma non è un qualcosa di necessariamente semplice, dipende dalla Tua applicazione, per le mie semplici cose è stato facile ma non lo ho provato su procedure complesse, comunque Ti suggerirei di dargli una guardata.

[Edit] ho dovuto cercarlo un po', nel caso "solo windows", prova a guardare il "WinPackit" di @RicPol, magari Ti è utile.
« Ultima modifica: Marzo 31, 2021, 08:31 da nuzzopippo »

Offline Valentina9213

  • python unicellularis
  • *
  • Post: 13
  • Punti reputazione: 0
    • Mostra profilo
Re:Progetto in Python
« Risposta #2 il: Marzo 31, 2021, 11:19 »
Ciao @nuzzopippo,
grazie mille per la tua risposta.

Esattamente, portare il mio programma in Python, che effettua varie analisi sull'inquinamento dell'aria , in un altro dispositivo che sia un altro Windows 10, l'importante è che l'altro utente che ha Windows non deve installare le librerie che sto utilizzando io, che sia Mac, Linux o RaspBerry PI 3+.
Per Windows ho utilizzato PyInstaller, già ho creato l'eseguibile, ma purtroppo parte solo per S.O. Windows, essendo giustamente (.exe).
Appunto mi servirebbe portarlo principalmente in un RaspBerry, che ha come sistema operativo Raspbian (Linux).

Magari è possibile cercare (se esiste) una cartella dove PyCharm ha tutte le librerie installate e crearne un file .zip mettendoci anche il mio programma. Non saprei.
Sto cercando su internet se qualcun'altro ha avuto lo stesso mio "problema" e ancora non trovo nulla.
Ho provato a scrivere in questo forum e vediamo un pò.

Grazie di nuovo.
Buona giornata.

Offline nuzzopippo

  • python neanderthalensis
  • ****
  • Post: 385
  • Punti reputazione: 0
    • Mostra profilo
Re:Progetto in Python
« Risposta #3 il: Marzo 31, 2021, 15:53 »
...Magari è possibile cercare (se esiste) una cartella dove PyCharm ha tutte le librerie installate e crearne un file .zip mettendoci anche il mio programma. Non saprei.

Guarda, ho fatto un "esperimento" : in ufficio mi son creato un venv, lo ho attivato ed installato li pyinstaller, quindi mi son spostato in una directory che contiene un insieme di script da me creati per una necessità di lavoro e dato il comando
pyinstaller --onefile main.py

ove "main.py" rappresenta lo script di avvio della applicazione, quindi mi son copiato da "dist" l'eseguibile prodotto su di una chiavetta usb.

Poco fa ho copiato detto eseguibile sullo HD della macchina da cui scrivo, dato i permessi di esecuzione ed avviato lo script (da shell) e funziona correttamente ... fermo restando che NON è il metodo canonico di distribuire una applicazione Linux (bisognerebbe crearsi un pacchetto, tipo "dep", "rpm" o altro) la cosa "potrebbe" anche funzionare con tale modalità, ti crei un venv, lo attivi, ci installi le librerie che Ti servono e pyinstalle e ti crei lo "eseguibile" direttamente dai sorgenti ... tale modalità è un po' tipo "dare martellate" ma può funzionare ed è sbrigativa.

Chiaramente, può entrare in gioco "anche" la struttura della applicazione da trattare, ed in tal caso diviene necessario studiarsi a fondo la documentazione di pyinstaller, od anche la "modalità" di utilizzo da parte dell'utente finale, ed in quest'altra circostanza possono entrare in gioco tanto la pacchettizzazione della applicazione quanto la sua modalità di utilizzo nel sistema di destinazione (p.e. utilizzo quale daemon, ovvero come applicazione utente) ... dipende un po' dalle Tue finalità l'approfondimento necessario-
« Ultima modifica: Marzo 31, 2021, 15:55 da nuzzopippo »