Maison >développement back-end >Tutoriel Python >Pourquoi `package_data` ne parvient-il pas à inclure les fichiers de données dans les outils de configuration Python ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 21:21:29789parcourir

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'],
)

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

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!

Déclaration:
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