[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