Ich habe Probleme beim Einbinden von Datendateien in mein setup.py-Skript. Mein Paket ist wie folgt aufgebaut:Einschließlich Datendateien mit setup.py
my_package/
setup.py
MANIFEST.in
my_package/
__init__.py
access_data.py
data_files/
my_data_file.csv
ich die my_data_file.csv
-Datei aufnehmen möchten bei der Installation, so dass es von access_data.py
gelesen werden kann. Um dies zu tun habe ich das package_data
Stichwort in setuptools
:
setup(...,
packages=['my_package'],
package_data={'my_package': ['./my_package/data_files/my_data_file.csv']},
include_package_data=True
)
Ich habe auch die Datei in MANIFEST.in
:
recursive-include my_package/data_files *
setup.py
scheint gut zu laufen und wirft keine Fehler. Jedoch, wenn ich das Paket importiere, bekomme ich eine Datei nicht gefunden Fehler, weil my_data_file.csv
fehlt. Ich habe versucht, andere Stapelüberlauffragen zu verweisen (besonders this one) aber kann nicht herausfinden, was ich falsch mache. Wie kann ich setup.py erhalten, um die erforderlichen Datendateien aufzunehmen?
Sind Sie auf einem Dateisystem, bei dem die Groß-/Kleinschreibung nicht beachtet wird? 'manifest.in' sollte wirklich' MANIFEST.in' sein. Aber das ist egal, da 'MANIFEST.in' für die Quellenverteilung (sdist) verwendet wird. – phd
Zuerst denke im Debuggen ist das große Problem in viele kleinere zu teilen. Lass es uns Schritt für Schritt machen. Schritt Nummer 1: Überprüfen Sie, ob Ihre Distribution (sdist, egg oder wheel) wirklich 'my_data_file.csv' enthält; Wenn nicht - fixiere 'setup.py' um es einzuschließen. Schritt Nummer 2: Überprüfen Sie, dass 'my_data_file.csv' installiert ist. Schritt 3 - Debuggen Sie, warum Sie nicht auf die Datei zugreifen können, selbst wenn sie vorhanden ist (falscher Pfad zur Datei? Berechtigungen?) – phd
Ihre Zeile sollte 'package_data = {'my_package': ['data_files/my_data_file.csv']},' (Im 'my_package' Paket gibt es kein' my_package' Verzeichnis) –