Configuración de python setup.py para instalar archivos en directorios personalizados

Quiero crear un setup.py que instale mis archivos en directorios personalizados. Tengo un prefijo determinado, donde me gustaría obtener el siguiente resultado:

<code>/my/prefix/
  bin/
    script.sh
  libexec/
    one.py
    two.py
    ...
  lib/pythonX.Y/site-packages/
    package/...
</code>

Mi proyecto inicial es el siguiente:

<code>/
  script.sh
  one.py
  two.py
  ...
  setup.py
  package/...
    __init__.py
    ...
</code>

¿Cuál sería la mejor manera de lograrlo? Me gustaría poder instalarlo más tarde con algo como:

<code>python setup.py install --prefix=/my/prefix
</code>

Puedo obtener un "paquete" bien instalado en el directorio correcto ya que lib / pythonX.Y / site-packages bajo --prefix es la ubicación predeterminada Pero, ¿hay una manera limpia de convertir script.sh en "bin" y otros archivos de python en "libexec"? La única manera que veo para lograrlo sería copiar manualmente esos archivos en mi script setup.py. ¿Puede haber una manera más limpia y estándar de hacerlo?

(editar)

Solución

Terminé con setup.py de esa manera:

<code>setup(name='mylib',
  scripts=['script.sh'],
  data_files=[('libexec', ['one.py', 'two.py'])]
)
</code>

Por supuesto, podría iterar sobre todos los archivos python para libexec, pero solo tengo 2-3 archivos python que necesito allí.

(edit2)

Además, puedo tener setup.cfg con lo siguiente:

<code>[install]
prefix=/my/prefix
</code>

y en lugar depython setup.py install --prefix=/my/prefix Solo puedo hacer

<code>python setup.py install
</code>

Respuestas a la pregunta(1)

Su respuesta a la pregunta