Ich schreibe eine setup.py-Datei für ein Python-Projekt, damit ich sie verteilen kann. Das Ziel ist es schließlich, eine .egg-Datei zu erstellen, aber ich versuche, sie zuerst mit Distutils und einer regulären .zip zu arbeiten.Warum kann ich diese Datendateien nicht in eine Python-Distribution mit Distutils aufnehmen?
Dies ist eine Eklipse pydev Projekt und meine Dateistruktur ist dies so etwas wie:
ProjectName
src
somePackage
module1.py
module2.py
...
config
propsFile1.ini
propsFile2.ini
propsFile3.ini
setup.py
mein setup.py Code Hier ist so weit:
from distutils.core import setup
setup(name='ProjectName',
version='1.0',
packages=['somePackage'],
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
)
Wenn ich laufen diese (mit Sdist als ein Kommandozeilenparameter), wird eine .zip-Datei mit allen Python-Dateien generiert - aber die Konfigurationsdateien sind nicht enthalten. Ich dachte, dass dieser Code:
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
zeigt an, dass diese 3 angegebenen Konfigurationsdateien sollen auf ein Verzeichnis „config“ in der Zip-Verteilung kopiert werden. Warum leistet dieser Code nichts? Was mache ich falsch?
(ich habe auch versucht, um mit den Pfaden der Config-Dateien zu spielen ... Aber nichts scheint zu helfen. Würde Python werfen einen Fehler oder eine Warnung, wenn der Pfad nicht korrekt war/Datei nicht gefunden wurde?)
Danke. Ich erhalte folgenden Fehler: 'Warnung: Keine Dateien gefunden, die 'config \ *' entsprechen. Ich habe versucht, zu .. \ config \ * zu ändern, aber das hilft auch nicht ... irgendwelche Ideen? – froadie
Es gibt ein Leerzeichen zwischen '\' und '*'. Versuchen Sie das zu entfernen? Andernfalls versuchen, den Schrägstrich zu verwenden. Ich habe den Schrägstrich verwendet, aber da Sie den umgekehrten Schrägstrich verwendet zu haben scheinen, habe ich hier '/' durch '\' ersetzt. Ich habe jedoch festgestellt, dass die Verwendung von/verursacht wirklich keine Probleme unter Windows. Wenn nichts funktioniert, nur prüfen, ob Sie auf dem richtigen Weg sind von Dateinamen in sie hartzucodieren, wie: gehören config/propsFile1.ini gehören config/propsFile2.ini # etc ... – Umang
Der Raum war nur wegen der SO-Formatierung - wenn ich sie zusammenstellte, versteckte sie den Schrägstrich aus irgendeinem Grund. Ändern in Forward-Schrägstrich macht keinen Unterschied ... Python scheint es automatisch zurück zu konvertieren, gleiche Fehlermeldung. Erhalte den gleichen Fehler bei einzelnen Dateien ... :(Irgendeine Ahnung, was ist los? Ist es ein Pfadproblem? – froadie