[Python] Progetto Python, Git, Setup.py

Marco Santamaria marco.santamaria a gmail.com
Ven 9 Feb 2018 11:32:12 CET


Il giorno 9 febbraio 2018 11:03, Piergiorgio Pancino <
piergiorgio.pancino a gmail.com> ha scritto:

> 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?
>

Diciamo di sì, ma in realtà è setuptools a fare queste operazioni, ammesso
che tu voglia usare setuptools.


> 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:
>
> /lib/nomeprogetto/..
>
> quindi per testare il codice in locale mentre lo sto modificando faccio
> semplicemente:
> export PYTHONPATH=/home/usr/nomeprogetto/lib
> e poi lancio unittest all'interno della cartella:
>
> /homeprogetto/lib/nomeprogetto/test/
>
> 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?
>

L'approccio che dici tu va bene, ma forse è più comodo installare il
package in modalità editabile con pip:

pip install -e .

(dove il punto indica il progetto corrente), cosa che equivale ad
usare il setuptools
"development mode"
<https://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode>
.

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.
Un buon punto di partenza è la PyPA (Python Packaging Authority):

https://packaging.python.org/

Attualmente i tool raccomandati sono:

   - pip
   - wheel
   - setuptools
   - Pipenv

Ciao,

Marco
-- 
|_|0|_|
|_|_|0|
|0|0|0|
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20180209/7fc5244d/attachment-0001.html>


Maggiori informazioni sulla lista Python