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?
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.
Basierend auf der angenommenen Antwort, hier ist die Lösung
Dies ist setup.py
:
Und das ist MANIFEST.in
:
Es gibt auch data_files
Denken Sie darüber nach, wo Sie diese Dateien ablegen möchten. Weitere Informationen finden Sie in den Dokumenten .
Sie müssen package_data
verwenden. Setzen Sie Ihre setup.py
in das Root-Verzeichnis, dann müssen Sie nur:
Tags und Links python setuptools