Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich Paketdaten ordnungsgemäß in setuptools/distutils ein?

Wie füge ich Paketdaten ordnungsgemäß in setuptools/distutils ein?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 22:16:03332Durchsuche

How to Properly Include Package Data with setuptools/distutils?

Einbinden von Paketdaten mit setuptools/distutils

Bei der Konfiguration der Paketinstallation mit setuptools kann es zu Schwierigkeiten beim Einbinden von package_data-Dateien kommen. Dieser Artikel befasst sich mit dem richtigen Ansatz hierfür und bietet eine Lösung für häufige Probleme.

Falscher Ansatz

Der falsche Ansatz besteht darin, package_data zu definieren und include_package_data auf „True“ zu setzen siehe Beispiel:

<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>

Richtiger Ansatz

Das Problem mit dem falschen Ansatz besteht darin, dass package_data nur beim Erstellen von Binärpaketen verwendet wird (z. B. Python-Setup). .py bdist ...), jedoch nicht beim Erstellen von Quellpaketen (z. B. python setup.py sdist ...).

Der richtige Ansatz besteht darin, MANIFEST.in zu verwenden, um Dateien anzugeben, die sowohl in Binär- als auch in Quelldistributionen enthalten sind . Hier ist ein Beispiel einer MANIFEST.in-Datei:

include *.txt
recursive-include myapp/data *

Durch die Verwendung von MANIFEST.in können Sie sicherstellen, dass alle erforderlichen Paketdaten enthalten sind, unabhängig vom zu erstellenden Distributionstyp.

Das obige ist der detaillierte Inhalt vonWie füge ich Paketdaten ordnungsgemäß in setuptools/distutils ein?. 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