Konfiguration von python setup.py zum Installieren von Dateien in benutzerdefinierten Verzeichnissen

Ich möchte eine setup.py erstellen, die meine Dateien in benutzerdefinierten Verzeichnissen installiert. Ich habe ein bestimmtes Präfix, bei dem ich folgendes Ergebnis erhalten möchte:

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

Mein erstes Projekt ist folgendes:

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

Was wäre der beste Weg, um dies zu erreichen? Ich würde es gerne später mit etwas installieren können:

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

Ich kann "package" im richtigen Verzeichnis installieren, da lib / pythonX.Y / site-packages unter --prefix der Standardspeicherort ist. Aber gibt es eine saubere Möglichkeit, script.sh in "bin" und andere Python-Dateien in "libexec" zu bekommen? Die einzige Möglichkeit, dies zu erreichen, besteht darin, diese Dateien manuell in mein Skript setup.py zu kopieren. Vielleicht gibt es dafür eine sauberere und einheitlichere Methode?

(bearbeiten)

Lösung

Am Ende war setup.py so:

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

Natürlich können Sie alle Python-Dateien für libexec durchlaufen, aber ich habe nur 2-3 Python-Dateien, die ich dort benötige.

(edit2)

Zusätzlich kann ich setup.cfg mit folgendem haben:

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

und stattpython setup.py install --prefix=/my/prefix Ich kann einfach machen:

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage