Rilascio dell'applicazione GUI Python su GitHub: usi ancora setup.py?

1

Prima domanda di ingegneria del software, quindi spero di essere in argomento.

Sono uno scienziato accademico che lavora su applicazioni GUI Python per uso educativo (ed eventualmente di ricerca). La GUI utilizza PyQt e pyqtgraph per tracciare i risultati dei calcoli derivati dagli input dell'utente. Ho messo un prototipo per la prima app su GitHub. Oltre al codice stesso, ho congelato le app (attualmente con PyInstaller) come file eseguibili autonomi a 1 file (Windows e OS X) e li ho allegati a una versione di GitHub: mi aspetto che la maggior parte degli utenti voglia solo un'app che viene eseguito quando fanno clic su di esso.

Tuttavia, per alcuni utenti il codice stesso può essere utile per imparare come risolvere un problema o per utilizzarlo nel proprio progetto. Quindi, è anche consigliabile un modo pulito per scaricare le parti "importanti" del pacchetto (codice funzionale e documenti, meno test e altri cruft).

Ciò che non mi è chiaro è quale ruolo dovrebbero avere setup.py e requirements.txt (se ce ne sono) in questo tipo di distribuzione. Cercando online, leggendo i documenti su PyPI ecc., La maggior parte dei tutorial presume che l'autore stia producendo una libreria che verrebbe installata e incorporata nella propria libreria python (come numpy, panda, PyQt ecc.). I miei progetti sono solo app che un utente dovrebbe eseguire a proprio piacimento e che non vogliono scavare nelle librerie python dei loro computer. Non sembra qualcosa che potresti effettivamente caricare su PyPI e renderlo installabile da lì. Quindi, non mi è chiaro come una tale distribuzione debba essere adeguatamente strutturata e implementata.

Devo ancora usare setup.py e requirements.txt, in qualche modo, per produrre un modo semplice per scaricare un sottoinsieme pulito del codice e i requisiti necessari, separati dall'installazione Python del sistema? Se è così, qualche suggerimento su come andare su questo? Questo aspetto della distribuzione è ancora molto misterioso per me.

Penso che i link a GitHub siano disapprovati a causa del loro periodo di impermanenza, ma potrei offrire un link al progetto se è utile e in argomento.

    
posta Geoffrey Sametz 05.04.2017 - 03:02
fonte

2 risposte

2

Prendendo ulteriormente il suggerimento di 9000: questo post sul blog è stato molto utile per distinguere tra i due modi di elencare i requisiti e i modi migliori per farlo:

link

In sostanza, se gli utenti non useranno un'installazione di pip, dovrei semplicemente usare un file requirements.txt che specifica quali versioni dei pacchetti richiesti funzioneranno.

    
risposta data 05.04.2017 - 23:54
fonte
2

Un utente tipico creerebbe un virtualenv per eseguire un particolare programma o un set di programmi correlato, come il tuo. Quindi sì, requirements.txt è sicuramente utile per far installare rapidamente le dipendenze; setup.py probabilmente non lo è.

    
risposta data 05.04.2017 - 17:28
fonte

Leggi altre domande sui tag