Beim Packen von Python-Anwendungen ist es oft notwendig, zusätzliche Datendateien in die Distribution einzubinden. In setuptools und distutils ist die Option package_data für diesen Zweck vorgesehen. Allerdings stoßen einige Benutzer auf Probleme, wenn sie versuchen, Paketdaten mit diesem Ansatz einzuschließen.
Laut Dokumentation sollte die Funktion setup() wie folgt konfiguriert werden, um Paketdaten einzuschließen:
setup( name='myapp', packages=find_packages(), package_data={ 'myapp': ['data/*.txt'], }, include_package_data=True, zip_safe=False, install_requires=['distribute'], )
Diese Konfiguration gibt an, dass Dateien mit der Erweiterung .txt beim Packen der Anwendung im Verzeichnis myapp/data enthalten sein sollen. Einige Benutzer stellen jedoch möglicherweise fest, dass dieser Ansatz nicht funktioniert.
Die bereitgestellte Lösung legt nahe, dass das Problem im Verhalten von package_data liegt. Es wird darauf hingewiesen, dass package_data nur beim Erstellen von Binärpaketen funktioniert (mithilfe von setup.py bdist ...). Es funktioniert jedoch nicht beim Erstellen von Quellpaketen (mithilfe von setup.py sdist ...).
Anstatt sich auf package_data zu verlassen, wird empfohlen, eine MANIFEST.in-Datei zu verwenden. Die Datei MANIFEST.in enthält eine Liste von Dateien, die sowohl in Binär- als auch in Quelldistributionen enthalten sein sollten. Dadurch wird sichergestellt, dass Benutzer beide Arten von Verteilungen erstellen können und über die erforderlichen Daten verfügen.
Das obige ist der detaillierte Inhalt vonWarum funktioniert „package_data' für Binärverteilungen, aber nicht für Quellverteilungen in „setuptools/distutils'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!