[Python] Come scrivere uno script da installare in /usr/bin con setup.py?
Alessandro Dentella
sandro a e-den.it
Lun 21 Mar 2011 12:55:35 CET
On Sun, Mar 20, 2011 at 09:44:14PM +0100, Marco Giusti wrote:
> On Sun, Mar 20, 2011 at 09:15:56PM +0100, Alessandro Dentella wrote:
> [...]
> > nel link della documentazione in [2] l'esempio è:
> >
> > setup(
> > # other arguments here...
> > entry_points = {
> > 'console_scripts': [
> > 'foo = my_package.some_module:main_func',
> > 'bar = other_module:some_func',
> > ],
> > 'gui_scripts': [
> > 'baz = my_package_gui.start_func',
> > ]
> > }
> > )
> >
> > dove c'è una differenza che non capisco se è voluta o meno. Nelle
> > console_scripts usa :main_func, mentre in gui_scripts usa .start_func
> > (ovvero con . invece che :). A me funziona solo se metto ':'.
>
> credo che sia un errore. leggi di seguito...
volendo effettivamente cambiare la configurazione di setup.py per usare
entry_points ho questo dubbio:
Nella attuale configurazione ho grossolaneamente:
sqlkit/
|-- bin
|-- demo
| |-- layout
| `-- sql
| |-- images
| `-- model
|-- sqlkit
| |-- misc
| `-- widgets
| |-- common
| |-- mask
| `-- table
`-- test
`-- doctest
la script da mettere in entry_points è in 'bin', e mi piace che stia lì per
visibilità. Così facendo però succede che se metto in setup.py:
entry_points = {
'gui_scripts': [
'sqledit = bin.sqledit:main',
]
}
mi viene installato anche un *package* bin, cosa che chiaramente voglio
evitare. L'unica soluzione che vedo è di "nascondere" sqledit all'interno
della struttura esistente 'sqlkit', cosa che non mi pare particolarmente
corretta, è normale avere le scripts o in bin o in scripts.
Suggeriementi/commenti?
sandro
*:-)
Maggiori informazioni sulla lista
Python