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.