Configuração python setup.py para instalar arquivos em diretórios personalizados
Eu quero criar um setup.py que instalaria meus arquivos em diretórios personalizados. Eu tenho um certo prefixo, onde gostaria de obter o seguinte resultado:
<code>/my/prefix/ bin/ script.sh libexec/ one.py two.py ... lib/pythonX.Y/site-packages/ package/... </code>
Meu projeto inicial está seguindo:
<code>/ script.sh one.py two.py ... setup.py package/... __init__.py ... </code>
Qual seria a melhor maneira de conseguir isso? Eu gostaria de poder instalá-lo mais tarde com algo como:
<code>python setup.py install --prefix=/my/prefix </code>
Eu posso obter "pacote" bem instalado no diretório correto como lib / pythonX.Y / site-packages em - prefixo é o local padrão. Mas existe uma maneira limpa de obter script.sh em "bin" e outros arquivos python em "libexec"? A única maneira que vejo para conseguir isso seria copiar manualmente esses arquivos no meu script setup.py. Pode haver uma maneira mais limpa e mais padronizada de fazer isso?
(editar)
Solução
Eu acabei com o setup.py assim:
<code>setup(name='mylib', scripts=['script.sh'], data_files=[('libexec', ['one.py', 'two.py'])] ) </code>
Claro, você poderia iterar todos os arquivos python para libexec, mas eu só tenho 2-3 arquivos python que eu preciso.
(edit2)
Além disso, posso ter o setup.cfg com o seguinte:
<code>[install] prefix=/my/prefix </code>
e em vez depython setup.py install --prefix=/my/prefix
Eu apenas posso fazer:
<code>python setup.py install </code>