setuptools: Hinzufügen zusätzlicher Dateien außerhalb des Pakets

8

Ich habe eine python -Anwendung, die ein festes Layout hat, das ich nicht ändern kann. Ich möchte es mit setuptools, z. Schreibe ein setup.py script.

Mit Hilfe der offiziellen Dokumentation konnte ich eine erste Vorlage schreiben. Die betreffende Anwendung verwendet jedoch viele zusätzliche Datendateien, die nicht explizit zu einem Paket gehören. Hier ist ein Beispiel für einen Quellbaum:

%Vor%

Hier ist das Problem: Der Code in something.py liest die Dateien moredata.txt und INFO.txt . Für Ersteres kann ich das Problem monkeyen, indem ich eine leere additionalstuff/__init__.py Datei hinzufüge, um additionalstuff zu einem Paket zu befördern und es von setuptools aufnehmen zu lassen. Aber wie könnte ich INFO.txt zu meinem .egg hinzufügen?

Bearbeiten

Die vorgeschlagenen Lösungen verwenden etwas nach dem Vorbild von

%Vor%

funktioniert nicht für mich, weil die Dateien moredata und INFO.txt nicht zu einem Paket gehören, sondern Teil eines separaten Ordners sind, der nur ein Teil des Moduls als Ganzes ist, nicht eines einzelnen Pakets. Wie oben erläutert, könnte dies im Falle von moredata.txt behoben werden, indem eine __init__.py -Datei zu additionpythonalstuff hinzugefügt wird, um sie zu einem Paket zu machen. Dies ist jedoch keine elegante Lösung und funktioniert überhaupt nicht für INFO.txt , das sich im obersten Verzeichnis befindet.

Lösung

Basierend auf der angenommenen Antwort, hier ist die Lösung

Dies ist setup.py :

%Vor%

Und das ist MANIFEST.in :

%Vor%     
carsten 16.09.2015, 12:56
quelle

2 Antworten

2

Es gibt auch data_files

%Vor%

Denken Sie darüber nach, wo Sie diese Dateien ablegen möchten. Weitere Informationen finden Sie in den Dokumenten .

    
pacholik 16.09.2015, 14:00
quelle
0

Sie müssen package_data verwenden. Setzen Sie Ihre setup.py in das Root-Verzeichnis, dann müssen Sie nur:

%Vor%     
Daniele Pantaleone 16.09.2015 13:19
quelle

Tags und Links