Heim >Backend-Entwicklung >Python-Tutorial >Warum kann meine „setup.py' keine Paketdaten einschließen?

Warum kann meine „setup.py' keine Paketdaten einschließen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 15:17:29740Durchsuche

Why Does My `setup.py` Fail to Include Package Data?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn