Maison >développement back-end >Tutoriel Python >Pourquoi mon « setup.py » ne parvient-il pas à inclure les données du package ?

Pourquoi mon « setup.py » ne parvient-il pas à inclure les données du package ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 15:17:29799parcourir

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

Inclure les données du package avec setuptools/distutils

Problème :

Malgré le respect des étapes recommandées pour inclure les données du package à l'aide de setuptools, le programme d'installation ne parvient pas à extraire les fichiers pertinents. Le code d'installation suivant devrait activer cette fonctionnalité :

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

Explication :

Le problème survient en raison d'une différence subtile entre package_data et MANIFEST.in, plus fiable. package_data est principalement utilisé lors de la création de packages binaires (par exemple, python setup.py bdist ...), mais il ne fonctionne pas pour créer des packages source (par exemple, python setup.py sdist ...).

Solution :

Pour inclure efficacement les données du package pour les distributions binaires et sources, il est recommandé d'utiliser MANIFEST.in. Voici un exemple :

include appname/data/*.txt

Placez ce fichier à la racine de votre projet. Il demandera aux commandes bdist et sdist d'inclure les fichiers de données spécifiés. Cette méthode garantit que quel que soit le type de distribution en cours de construction, les données requises sont correctement empaquetées.

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