Pourquoi `package_data` ne parvient-il pas à inclure les fichiers de données dans les outils de configuration Python ?

Linda Hamilton
Libérer: 2024-10-31 21:21:29
original
781 Les gens l'ont consulté

Why Does `package_data` Fail to Include Data Files in Python Setuptools?

Inclure les données du package dans les configurations avec Setuptools ou Distutils

Lorsque vous travaillez avec setuptools, l'intégration des données du package dans le processus d'installation peut rencontrer des obstacles. Bien que la documentation suggère d'utiliser package_data pour spécifier l'inclusion de fichiers, les utilisateurs sont confrontés à des problèmes lors de la mise en œuvre de cette approche.

Considérez l'extrait de code suivant :

setup(
   name='myapp',
   packages=find_packages(),
   package_data={
      'myapp': ['data/*.txt'],
   },
   include_package_data=True,
   zip_safe=False,
   install_requires=['distribute'],
)
Copier après la connexion

Dans cet exemple, le dictionnaire package_data vise à inclure tous Fichiers .txt situés dans le répertoire myapp/data/. Malheureusement, ce mécanisme est inefficace.

Une approche alternative : MANIFEST.in

Plutôt que de vous fier à package_data, utilisez le fichier MANIFEST.in pour spécifier les fichiers à compris. Cette méthode fonctionne de manière transparente pour les distributions binaires et sources.

Pour créer un fichier MANIFEST.in, ajoutez les lignes suivantes :

include data/*
Copier après la connexion

Dans ce cas, elle garantit que tous les fichiers contenus dans les données / sont inclus dans le processus d'installation.

En adoptant l'approche MANIFEST.in, vous pouvez gérer efficacement l'inclusion des données des packages dans les distributions binaires et sources.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal