Heim > Backend-Entwicklung > Python-Tutorial > Warum funktioniert „package_data' für Binärverteilungen, aber nicht für Quellverteilungen in „setuptools/distutils'?

Warum funktioniert „package_data' für Binärverteilungen, aber nicht für Quellverteilungen in „setuptools/distutils'?

Mary-Kate Olsen
Freigeben: 2024-11-03 05:13:31
Original
858 Leute haben es durchsucht

Why Does `package_data` Work for Binary Distributions but Not Source Distributions in `setuptools/distutils`?

Einbindung von Paketdaten in setuptools/distutils

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'],
)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage