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>

questionAnswers(1)

yourAnswerToTheQuestion