<div dir="ltr">Il giorno 9 febbraio 2018 11:03, Piergiorgio Pancino <span dir="ltr"><<a href="mailto:piergiorgio.pancino@gmail.com" target="_blank">piergiorgio.pancino@gmail.com</a>></span> ha scritto:<div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Da quanto ho capito nel momento in cui un utente vorrà installare il package, setup.py si occupa di copiare ./lib/nomeprogetto nella cartella site-packages/nomeprogetto, copiare gli scripts nella cartella scripts di python eccetera. In linea di principio è corretto?</div></div></blockquote><div><br></div><div>Diciamo di sì, ma in realtà è setuptools a fare queste operazioni, ammesso che tu voglia usare setuptools.<br> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Ora se io invece voglio contribuire allo sviluppo non capisco se posso lasciare stare setup.py e lavorare nel cuore del codice che si trova tipicamente all'interno di:</div><div><br></div><div>/lib/nomeprogetto/..</div><div><br></div><div>quindi per testare il codice in locale mentre lo sto modificando faccio semplicemente:</div><div>export PYTHONPATH=/home/usr/<wbr>nomeprogetto/lib</div><div>e poi lancio unittest all'interno della cartella:</div><div><br></div><div>/homeprogetto/lib/<wbr>nomeprogetto/test/</div><div><br></div><div>E' corretto questo approccio? Posso aspettarmi che i miei test abbiano tutti i path settati corramente? Oppure dovrei ogni volta che faccio una modifica al codice dovrei reinstallare con setup.py e rilanciare i test?</div></div></blockquote><div><br></div><div>L'approccio che dici tu va bene, ma forse è più comodo installare il package in modalità editabile con pip:<br><br></div><div>pip install -e .<br><br></div><div>(dove il punto indica il progetto corrente), cosa che equivale ad usare il <a href="https://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode">setuptools "development mode"</a>.<br><br></div><div>Lo stato dei vari tool per il packaging in Python ha una vita un po' travagliata, ma si sta stabilizzando. A volte si trovano delle guide non aggiornate che possono essere fuorvianti.<br>Un buon punto di partenza è la PyPA (Python Packaging Authority):<br><br><a href="https://packaging.python.org/">https://packaging.python.org/</a><br><br></div><div>Attualmente i tool raccomandati sono:<br><ul><li>pip</li><li>wheel</li><li>setuptools</li><li>Pipenv</li></ul><p>Ciao,</p><p>Marco<br></p></div></div>-- <br><div class="gmail_signature"><div dir="ltr"><span style="font-family:monospace,monospace"></span><span style="font-family:monospace,monospace">|_|0|_|</span><br><span style="font-family:monospace,monospace"></span><span style="font-family:monospace,monospace"></span><div><span style="font-family:monospace,monospace">|_|_|0|<br>|0|0|0|<br><br></span></div></div></div>
</div></div>