konfiguracja python.py do instalowania plików w niestandardowych katalogach

Chcę utworzyć plik setup.py, który zainstaluje moje pliki w niestandardowych katalogach. Mam pewien prefiks, w którym chciałbym uzyskać następujący wynik:

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

Mój pierwszy projekt jest następujący:

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

Jaki byłby najlepszy sposób, aby to osiągnąć? Chciałbym móc zainstalować go później na przykład:

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

Mogę ładnie zainstalować „pakiet” w odpowiednim katalogu, ponieważ lib / pythonX.Y / site-packages pod --prefix jest domyślną lokalizacją. Ale czy istnieje czysty sposób na wprowadzenie skryptu script.sh do „bin” i innych plików Pythona do „libexec”? Jedynym sposobem, aby to osiągnąć, jest ręczne skopiowanie tych plików w skrypcie setup.py. Może być czystszy i bardziej standardowy sposób na to?

(edytować)

Rozwiązanie

Tak skończyło się na setup.py:

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

Oczywiście, możesz iterować wszystkie pliki Pythona dla libexec, ale mam tam tylko 2-3 pliki Pythona.

(edytuj2)

Dodatkowo mogę mieć plik setup.cfg z następującymi elementami:

[install]
prefix=/my/prefix

i zamiastpython setup.py install --prefix=/my/prefix Mogę po prostu zrobić:

python setup.py install