python setup.py configuration pour installer les fichiers dans des répertoires

Je veux créer un setup.py qui serait d'installer mes fichiers dans des répertoires. J'ai un certain préfixe, où je voudrais obtenir le résultat suivant:

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

Mon projet initial est le suivant:

/
  script.sh
  one.py
  two.py
  ...
  setup.py
  package/...
    __init__.py
    ...

Quelle serait la meilleure façon d'y parvenir? Je voudrais être en mesure de l'installer plus tard avec quelque chose comme:

python setup.py install --prefix=/my/prefix

Je peux obtenir "package" bien installé dans le bon répertoire lib/pythonX.Y/site-packages sous --prefix est l'emplacement par défaut. Mais est-il un moyen propre à obtenir script.sh dans "bin" et d'autres fichiers python dans "libexec"? Le seul moyen que je vois pour l'atteindre serait de copier manuellement les fichiers dans mon setup.py script. Peut-être il est plus propre et plus standard de la manière de le faire?

(edit)

Solution

J'ai fini avec setup.py comme ça:

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

Bien sûr, vous pouvez itérer sur tous les fichiers python pour libexec, mais je n'ai que 2-3 python fichiers dont j'ai besoin.

(edit2)

En outre, je peux avoir de l'installation.cfg avec les éléments suivants:

[install]
prefix=/my/prefix

et au lieu de python setup.py install --prefix=/my/prefix que je peux le faire:

python setup.py install

OriginalL'auteur Ago | 2012-05-05