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:

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

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

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

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

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

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:

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

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:

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

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

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

questionAnswers(1)

yourAnswerToTheQuestion