Heim > Artikel > Backend-Entwicklung > Warum kann meine „setup.py“ keine Paketdaten einschließen?
Einbinden von Paketdaten mit setuptools/distutils
Problem:
Obwohl die empfohlenen Schritte befolgt wurden Um Paketdaten mithilfe von Setuptools einzuschließen, kann das Installationsprogramm die relevanten Dateien nicht abrufen. Der folgende Setup-Code sollte diese Funktionalität aktivieren:
<code class="python">setup( name='myapp', packages=find_packages(), package_data={ 'myapp': ['data/*.txt'], }, include_package_data=True, zip_safe=False, install_requires=['distribute'], )</code>
Erklärung:
Das Problem entsteht aufgrund eines subtilen Unterschieds zwischen package_data und dem zuverlässigeren MANIFEST.in. package_data wird hauptsächlich beim Erstellen von Binärpaketen verwendet (z. B. python setup.py bdist ...), funktioniert jedoch nicht zum Erstellen von Quellpaketen (z. B. python setup.py sdist ...).
Lösung:
Um Paketdaten sowohl für Binär- als auch für Quelldistributionen effektiv einzubinden, wird die Verwendung von MANIFEST.in empfohlen. Hier ist ein Beispiel:
include appname/data/*.txt
Platzieren Sie diese Datei im Stammverzeichnis Ihres Projekts. Es weist sowohl die Befehle bdist als auch sdist an, die angegebenen Datendateien einzuschließen. Diese Methode stellt sicher, dass unabhängig vom zu erstellenden Verteilungstyp die erforderlichen Daten ordnungsgemäß verpackt werden.
Das obige ist der detaillierte Inhalt vonWarum kann meine „setup.py“ keine Paketdaten einschließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!