Voglio creare un setup.py che installare i file in directory personalizzati. Ho un certo prefisso, dove vorrei ottenere il seguente risultato:configurazione setup.py python per installare i file nelle directory personalizzati
/my/prefix/
bin/
script.sh
libexec/
one.py
two.py
...
lib/pythonX.Y/site-packages/
package/...
Il mio progetto iniziale è la seguente:
/
script.sh
one.py
two.py
...
setup.py
package/...
__init__.py
...
Quale sarebbe il modo migliore per raggiungere questo obiettivo? Mi piacerebbe essere in grado di installare in un secondo momento con qualcosa di simile:
python setup.py install --prefix=/my/prefix
posso ottenere "pacchetto" ben installato nella directory corretta come lib/pythonX.Y/site-packages sotto --prefix è l'impostazione predefinita Posizione. Ma c'è un modo pulito per ottenere script.sh in "bin" e altri file python in "libexec"? L'unico modo che vedo per ottenere quello sarebbe quello di copiare manualmente quei file nel mio script setup.py. Potrebbe esserci un modo più pulito e più standard per farlo?
(edit)
Soluzione
ho finito con setup.py così:
setup(name='mylib',
scripts=['script.sh'],
data_files=[('libexec', ['one.py', 'two.py'])]
)
Naturalmente, si potrebbe iterare su tutti i file di python per libexec, ma io ho solo 2-3 file python di cui ho bisogno.
(edit2)
Inoltre, posso avere setup.cfg con il seguente:
[install]
prefix=/my/prefix
invece di python setup.py install --prefix=/my/prefix
posso solo fare:
python setup.py install
Ecco alcuni documenti utili su questo qui: https://docs.python.org/2/install/index.html#alternate-installation-unix-the-prefix-scheme e qui https: //docs.python. org/3/distutils/introduction.html – Pierz